Changes in test/graph_test.cc [375:2d87dbd7f8c8:372:7b6466ed488a] in lemon-1.2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
test/graph_test.cc
r375 r372 31 31 32 32 template <class Graph> 33 void checkGraph Build() {33 void checkGraph() { 34 34 TEMPLATE_GRAPH_TYPEDEFS(Graph); 35 35 … … 37 37 checkGraphNodeList(G, 0); 38 38 checkGraphEdgeList(G, 0); 39 checkGraphArcList(G, 0);40 39 41 40 Node … … 45 44 checkGraphNodeList(G, 3); 46 45 checkGraphEdgeList(G, 0); 47 checkGraphArcList(G, 0);48 46 49 47 Edge e1 = G.addEdge(n1, n2); 50 48 check((G.u(e1) == n1 && G.v(e1) == n2) || (G.u(e1) == n2 && G.v(e1) == n1), 51 49 "Wrong edge"); 52 53 50 checkGraphNodeList(G, 3); 51 checkGraphArcList(G, 2); 54 52 checkGraphEdgeList(G, 1); 55 checkGraphArcList(G, 2); 56 57 checkGraphIncEdgeArcLists(G, n1, 1); 58 checkGraphIncEdgeArcLists(G, n2, 1); 59 checkGraphIncEdgeArcLists(G, n3, 0); 60 53 54 checkGraphOutArcList(G, n1, 1); 55 checkGraphOutArcList(G, n2, 1); 56 checkGraphOutArcList(G, n3, 0); 57 58 checkGraphInArcList(G, n1, 1); 59 checkGraphInArcList(G, n2, 1); 60 checkGraphInArcList(G, n3, 0); 61 62 checkGraphIncEdgeList(G, n1, 1); 63 checkGraphIncEdgeList(G, n2, 1); 64 checkGraphIncEdgeList(G, n3, 0); 65 66 checkGraphConArcList(G, 2); 61 67 checkGraphConEdgeList(G, 1); 62 checkGraphConArcList(G, 2); 63 64 Edge e2 = G.addEdge(n2, n1), 65 e3 = G.addEdge(n2, n3); 66 68 69 Edge e2 = G.addEdge(n2, n1), e3 = G.addEdge(n2, n3); 67 70 checkGraphNodeList(G, 3); 71 checkGraphArcList(G, 6); 68 72 checkGraphEdgeList(G, 3); 69 checkGraphArcList(G, 6); 70 71 checkGraphIncEdgeArcLists(G, n1, 2); 72 checkGraphIncEdgeArcLists(G, n2, 3); 73 checkGraphIncEdgeArcLists(G, n3, 1); 74 73 74 checkGraphOutArcList(G, n1, 2); 75 checkGraphOutArcList(G, n2, 3); 76 checkGraphOutArcList(G, n3, 1); 77 78 checkGraphInArcList(G, n1, 2); 79 checkGraphInArcList(G, n2, 3); 80 checkGraphInArcList(G, n3, 1); 81 82 checkGraphIncEdgeList(G, n1, 2); 83 checkGraphIncEdgeList(G, n2, 3); 84 checkGraphIncEdgeList(G, n3, 1); 85 86 checkGraphConArcList(G, 6); 75 87 checkGraphConEdgeList(G, 3); 76 checkGraphConArcList(G, 6);77 88 78 89 checkArcDirections(G); … … 84 95 checkGraphArcMap(G); 85 96 checkGraphEdgeMap(G); 86 }87 88 template <class Graph>89 void checkGraphAlter() {90 TEMPLATE_GRAPH_TYPEDEFS(Graph);91 92 Graph G;93 Node n1 = G.addNode(), n2 = G.addNode(),94 n3 = G.addNode(), n4 = G.addNode();95 Edge e1 = G.addEdge(n1, n2), e2 = G.addEdge(n2, n1),96 e3 = G.addEdge(n2, n3), e4 = G.addEdge(n1, n4),97 e5 = G.addEdge(n4, n3);98 99 checkGraphNodeList(G, 4);100 checkGraphEdgeList(G, 5);101 checkGraphArcList(G, 10);102 103 // Check changeU() and changeV()104 if (G.u(e2) == n2) {105 G.changeU(e2, n3);106 } else {107 G.changeV(e2, n3);108 }109 110 checkGraphNodeList(G, 4);111 checkGraphEdgeList(G, 5);112 checkGraphArcList(G, 10);113 114 checkGraphIncEdgeArcLists(G, n1, 3);115 checkGraphIncEdgeArcLists(G, n2, 2);116 checkGraphIncEdgeArcLists(G, n3, 3);117 checkGraphIncEdgeArcLists(G, n4, 2);118 119 checkGraphConEdgeList(G, 5);120 checkGraphConArcList(G, 10);121 122 if (G.u(e2) == n1) {123 G.changeU(e2, n2);124 } else {125 G.changeV(e2, n2);126 }127 128 checkGraphNodeList(G, 4);129 checkGraphEdgeList(G, 5);130 checkGraphArcList(G, 10);131 132 checkGraphIncEdgeArcLists(G, n1, 2);133 checkGraphIncEdgeArcLists(G, n2, 3);134 checkGraphIncEdgeArcLists(G, n3, 3);135 checkGraphIncEdgeArcLists(G, n4, 2);136 137 checkGraphConEdgeList(G, 5);138 checkGraphConArcList(G, 10);139 140 // Check contract()141 G.contract(n1, n4, false);142 143 checkGraphNodeList(G, 3);144 checkGraphEdgeList(G, 5);145 checkGraphArcList(G, 10);146 147 checkGraphIncEdgeArcLists(G, n1, 4);148 checkGraphIncEdgeArcLists(G, n2, 3);149 checkGraphIncEdgeArcLists(G, n3, 3);150 151 checkGraphConEdgeList(G, 5);152 checkGraphConArcList(G, 10);153 154 G.contract(n2, n3);155 156 checkGraphNodeList(G, 2);157 checkGraphEdgeList(G, 3);158 checkGraphArcList(G, 6);159 160 checkGraphIncEdgeArcLists(G, n1, 4);161 checkGraphIncEdgeArcLists(G, n2, 2);162 163 checkGraphConEdgeList(G, 3);164 checkGraphConArcList(G, 6);165 }166 167 template <class Graph>168 void checkGraphErase() {169 TEMPLATE_GRAPH_TYPEDEFS(Graph);170 171 Graph G;172 Node n1 = G.addNode(), n2 = G.addNode(),173 n3 = G.addNode(), n4 = G.addNode();174 Edge e1 = G.addEdge(n1, n2), e2 = G.addEdge(n2, n1),175 e3 = G.addEdge(n2, n3), e4 = G.addEdge(n1, n4),176 e5 = G.addEdge(n4, n3);177 178 // Check edge deletion179 G.erase(e2);180 181 checkGraphNodeList(G, 4);182 checkGraphEdgeList(G, 4);183 checkGraphArcList(G, 8);184 185 checkGraphIncEdgeArcLists(G, n1, 2);186 checkGraphIncEdgeArcLists(G, n2, 2);187 checkGraphIncEdgeArcLists(G, n3, 2);188 checkGraphIncEdgeArcLists(G, n4, 2);189 190 checkGraphConEdgeList(G, 4);191 checkGraphConArcList(G, 8);192 193 // Check node deletion194 G.erase(n3);195 196 checkGraphNodeList(G, 3);197 checkGraphEdgeList(G, 2);198 checkGraphArcList(G, 4);199 200 checkGraphIncEdgeArcLists(G, n1, 2);201 checkGraphIncEdgeArcLists(G, n2, 1);202 checkGraphIncEdgeArcLists(G, n4, 1);203 204 checkGraphConEdgeList(G, 2);205 checkGraphConArcList(G, 4);206 }207 208 209 template <class Graph>210 void checkGraphSnapshot() {211 TEMPLATE_GRAPH_TYPEDEFS(Graph);212 213 Graph G;214 Node n1 = G.addNode(), n2 = G.addNode(), n3 = G.addNode();215 Edge e1 = G.addEdge(n1, n2), e2 = G.addEdge(n2, n1),216 e3 = G.addEdge(n2, n3);217 218 checkGraphNodeList(G, 3);219 checkGraphEdgeList(G, 3);220 checkGraphArcList(G, 6);221 222 typename Graph::Snapshot snapshot(G);223 224 Node n = G.addNode();225 G.addEdge(n3, n);226 G.addEdge(n, n3);227 G.addEdge(n3, n2);228 229 checkGraphNodeList(G, 4);230 checkGraphEdgeList(G, 6);231 checkGraphArcList(G, 12);232 233 snapshot.restore();234 235 checkGraphNodeList(G, 3);236 checkGraphEdgeList(G, 3);237 checkGraphArcList(G, 6);238 239 checkGraphIncEdgeArcLists(G, n1, 2);240 checkGraphIncEdgeArcLists(G, n2, 3);241 checkGraphIncEdgeArcLists(G, n3, 1);242 243 checkGraphConEdgeList(G, 3);244 checkGraphConArcList(G, 6);245 246 checkNodeIds(G);247 checkEdgeIds(G);248 checkArcIds(G);249 checkGraphNodeMap(G);250 checkGraphEdgeMap(G);251 checkGraphArcMap(G);252 253 G.addNode();254 snapshot.save(G);255 256 G.addEdge(G.addNode(), G.addNode());257 258 snapshot.restore();259 260 checkGraphNodeList(G, 4);261 checkGraphEdgeList(G, 3);262 checkGraphArcList(G, 6);263 97 } 264 98 … … 533 367 void checkGraphs() { 534 368 { // Checking ListGraph 535 checkGraphBuild<ListGraph>(); 536 checkGraphAlter<ListGraph>(); 537 checkGraphErase<ListGraph>(); 538 checkGraphSnapshot<ListGraph>(); 369 checkGraph<ListGraph>(); 539 370 checkGraphValidityErase<ListGraph>(); 540 371 } 541 372 { // Checking SmartGraph 542 checkGraphBuild<SmartGraph>(); 543 checkGraphSnapshot<SmartGraph>(); 373 checkGraph<SmartGraph>(); 544 374 checkGraphValidity<SmartGraph>(); 545 375 }
Note: See TracChangeset
for help on using the changeset viewer.