COIN-OR::LEMON - Graph Library

source: lemon-0.x/src/work/marci/graph_wrapper_test.cc @ 850:54d3c1599d08

Last change on this file since 850:54d3c1599d08 was 850:54d3c1599d08, checked in by marci, 17 years ago
File size: 3.5 KB
Line 
1#include<iostream>
2#include<hugo/smart_graph.h>
3#include<hugo/skeletons/graph.h>
4#include<hugo/list_graph.h>
5#include<hugo/full_graph.h>
6#include<hugo/graph_wrapper.h>
7
8#include"test_tools.h"
9#include"graph_test.h"
10
11/**
12\file
13This test makes consistency checks of list graph structures.
14
15G.addNode(), G.addEdge(), G.tail(), G.head()
16
17\todo Checks for empty graphs and isolated points.
18conversion.
19*/
20
21using namespace hugo;
22
23template<class Graph> void bidirPetersen(Graph &G)
24{
25  typedef typename Graph::Edge Edge;
26  typedef typename Graph::EdgeIt EdgeIt;
27 
28  checkGraphEdgeList(G,15);
29 
30  std::vector<Edge> ee;
31 
32  for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
33
34  for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
35    G.addEdge(G.head(*p),G.tail(*p));
36}
37
38template<class Graph> void checkPetersen(Graph &G)
39{
40  typedef typename Graph::Node Node;
41
42  typedef typename Graph::EdgeIt EdgeIt;
43  typedef typename Graph::NodeIt NodeIt;
44
45  checkGraphNodeList(G,10);
46  checkGraphEdgeList(G,30);
47
48  for(NodeIt n(G);n!=INVALID;++n) {
49    checkGraphInEdgeList(G,n,3);
50    checkGraphOutEdgeList(G,n,3);
51    ++n;
52  } 
53}
54
55//Compile GraphSkeleton
56template void checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
57(skeleton::StaticGraphSkeleton &);
58
59template void checkCompileGraph<skeleton::GraphSkeleton>
60(skeleton::GraphSkeleton &);
61
62template void checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
63(skeleton::ErasableGraphSkeleton &);
64
65//Compile SmartGraph
66typedef SmartGraph Graph;
67typedef GraphWrapper<Graph> GW;
68template void checkCompileStaticGraph<GW>(GW &);
69//template void checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
70
71//Compile SymSmartGraph
72typedef RevGraphWrapper<Graph> RevGW;
73template void checkCompileStaticGraph<RevGW>(RevGW &);
74//template void checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
75
76// //Compile ListGraph
77// template void checkCompileGraph<ListGraph>(ListGraph &);
78// template void checkCompileErasableGraph<ListGraph>(ListGraph &);
79// template void checkCompileGraphFindEdge<ListGraph>(ListGraph &);
80
81
82// //Compile SymListGraph
83// template void checkCompileGraph<SymListGraph>(SymListGraph &);
84// template void checkCompileErasableGraph<SymListGraph>(SymListGraph &);
85// template void checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
86
87// //Compile FullGraph
88// template void checkCompileStaticGraph<FullGraph>(FullGraph &);
89// template void checkCompileGraphFindEdge<FullGraph>(FullGraph &);
90
91// //Compile EdgeSet <ListGraph>
92// template void checkCompileGraph<EdgeSet <ListGraph> >(EdgeSet <ListGraph> &);
93// template void checkCompileGraphEraseEdge<EdgeSet <ListGraph> >
94// (EdgeSet <ListGraph> &);
95// template void checkCompileGraphFindEdge<EdgeSet <ListGraph> >
96// (EdgeSet <ListGraph> &);
97
98// //Compile EdgeSet <NodeSet>
99// template void checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &);
100// template void checkCompileGraphEraseEdge<EdgeSet <NodeSet> >
101// (EdgeSet <NodeSet> &);
102// template void checkCompileGraphFindEdge<EdgeSet <NodeSet> >
103// (EdgeSet <NodeSet> &);
104
105
106int main()
107{
108 //  {
109//     SmartGraph G;
110//     addPetersen(G);
111//     bidirPetersen(G);
112//     checkPetersen(G);
113//   }
114//   {
115//     ListGraph G;
116//     addPetersen(G);
117//     bidirPetersen(G);
118//     checkPetersen(G);
119//   }
120//   {
121//     SymSmartGraph G;
122//     addPetersen(G);
123//     checkPetersen(G);
124//   }
125//   {
126//     SymListGraph G;
127//     addPetersen(G);
128//     checkPetersen(G);
129//   }
130
131  ///\file
132  ///\todo map tests.
133  ///\todo copy constr tests.
134
135  std::cout << __FILE__ ": All tests passed.\n";
136
137  return 0;
138}
Note: See TracBrowser for help on using the repository browser.