2 #include<hugo/smart_graph.h>
3 #include<hugo/skeletons/graph.h>
4 #include<hugo/list_graph.h>
5 #include<hugo/full_graph.h>
12 This test makes consistency checks of list graph structures.
14 G.addNode(), G.addEdge(), G.tail(), G.head()
16 \todo Checks for empty graphs and isolated points.
22 template<class Graph> void bidirPetersen(Graph &G)
24 typedef typename Graph::Edge Edge;
25 typedef typename Graph::EdgeIt EdgeIt;
27 checkGraphEdgeList(G,15);
31 for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
33 for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
34 G.addEdge(G.head(*p),G.tail(*p));
37 template<class Graph> void checkPetersen(Graph &G)
39 typedef typename Graph::Node Node;
41 typedef typename Graph::EdgeIt EdgeIt;
42 typedef typename Graph::NodeIt NodeIt;
44 checkGraphNodeList(G,10);
45 checkGraphEdgeList(G,30);
47 for(NodeIt n(G);n!=INVALID;++n) {
48 checkGraphInEdgeList(G,n,3);
49 checkGraphOutEdgeList(G,n,3);
54 //Compile GraphSkeleton
55 template void checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
56 (skeleton::StaticGraphSkeleton &);
58 template void checkCompileGraph<skeleton::GraphSkeleton>
59 (skeleton::GraphSkeleton &);
61 template void checkCompileErasableGraph<skeleton::EraseableGraphSkeleton>
62 (skeleton::EraseableGraphSkeleton &);
65 template void checkCompileGraph<SmartGraph>(SmartGraph &);
66 template void checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
68 //Compile SymSmartGraph
69 template void checkCompileGraph<SymSmartGraph>(SymSmartGraph &);
70 template void checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
73 template void checkCompileGraph<ListGraph>(ListGraph &);
74 template void checkCompileErasableGraph<ListGraph>(ListGraph &);
75 template void checkCompileGraphFindEdge<ListGraph>(ListGraph &);
78 //Compile SymListGraph
79 template void checkCompileGraph<SymListGraph>(SymListGraph &);
80 template void checkCompileErasableGraph<SymListGraph>(SymListGraph &);
81 template void checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
84 template void checkCompileStaticGraph<FullGraph>(FullGraph &);
85 template void checkCompileGraphFindEdge<FullGraph>(FullGraph &);
87 //Compile EdgeSet <ListGraph>
88 template void checkCompileGraph<EdgeSet <ListGraph> >(EdgeSet <ListGraph> &);
89 template void checkCompileGraphEraseEdge<EdgeSet <ListGraph> >
90 (EdgeSet <ListGraph> &);
91 template void checkCompileGraphFindEdge<EdgeSet <ListGraph> >
92 (EdgeSet <ListGraph> &);
94 //Compile EdgeSet <NodeSet>
95 template void checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &);
96 template void checkCompileGraphEraseEdge<EdgeSet <NodeSet> >
97 (EdgeSet <NodeSet> &);
98 template void checkCompileGraphFindEdge<EdgeSet <NodeSet> >
99 (EdgeSet <NodeSet> &);
129 ///\todo copy constr tests.
131 std::cout << __FILE__ ": All tests passed.\n";