... |
... |
@@ -28,8 +28,9 @@
|
28 |
28 |
|
29 |
29 |
void digraph_copy_test() {
|
30 |
30 |
const int nn = 10;
|
31 |
31 |
|
|
32 |
// Build a digraph
|
32 |
33 |
SmartDigraph from;
|
33 |
34 |
SmartDigraph::NodeMap<int> fnm(from);
|
34 |
35 |
SmartDigraph::ArcMap<int> fam(from);
|
35 |
36 |
SmartDigraph::Node fn = INVALID;
|
... |
... |
@@ -50,8 +51,9 @@
|
50 |
51 |
if (i == 0 && j == 0) fa = arc;
|
51 |
52 |
}
|
52 |
53 |
}
|
53 |
54 |
|
|
55 |
// Test digraph copy
|
54 |
56 |
ListDigraph to;
|
55 |
57 |
ListDigraph::NodeMap<int> tnm(to);
|
56 |
58 |
ListDigraph::ArcMap<int> tam(to);
|
57 |
59 |
ListDigraph::Node tn;
|
... |
... |
@@ -67,8 +69,11 @@
|
67 |
69 |
nodeMap(fnm, tnm).arcMap(fam, tam).
|
68 |
70 |
nodeRef(nr).arcRef(er).
|
69 |
71 |
nodeCrossRef(ncr).arcCrossRef(ecr).
|
70 |
72 |
node(fn, tn).arc(fa, ta).run();
|
|
73 |
|
|
74 |
check(countNodes(from) == countNodes(to), "Wrong copy.");
|
|
75 |
check(countArcs(from) == countArcs(to), "Wrong copy.");
|
71 |
76 |
|
72 |
77 |
for (SmartDigraph::NodeIt it(from); it != INVALID; ++it) {
|
73 |
78 |
check(ncr[nr[it]] == it, "Wrong copy.");
|
74 |
79 |
check(fnm[it] == tnm[nr[it]], "Wrong copy.");
|
... |
... |
@@ -89,13 +94,20 @@
|
89 |
94 |
check(er[ecr[it]] == it, "Wrong copy.");
|
90 |
95 |
}
|
91 |
96 |
check(tn == nr[fn], "Wrong copy.");
|
92 |
97 |
check(ta == er[fa], "Wrong copy.");
|
|
98 |
|
|
99 |
// Test repeated copy
|
|
100 |
digraphCopy(from, to).run();
|
|
101 |
|
|
102 |
check(countNodes(from) == countNodes(to), "Wrong copy.");
|
|
103 |
check(countArcs(from) == countArcs(to), "Wrong copy.");
|
93 |
104 |
}
|
94 |
105 |
|
95 |
106 |
void graph_copy_test() {
|
96 |
107 |
const int nn = 10;
|
97 |
108 |
|
|
109 |
// Build a graph
|
98 |
110 |
SmartGraph from;
|
99 |
111 |
SmartGraph::NodeMap<int> fnm(from);
|
100 |
112 |
SmartGraph::ArcMap<int> fam(from);
|
101 |
113 |
SmartGraph::EdgeMap<int> fem(from);
|
... |
... |
@@ -121,8 +133,9 @@
|
121 |
133 |
if (i == 0 && j == 0) fe = edge;
|
122 |
134 |
}
|
123 |
135 |
}
|
124 |
136 |
|
|
137 |
// Test graph copy
|
125 |
138 |
ListGraph to;
|
126 |
139 |
ListGraph::NodeMap<int> tnm(to);
|
127 |
140 |
ListGraph::ArcMap<int> tam(to);
|
128 |
141 |
ListGraph::EdgeMap<int> tem(to);
|
... |
... |
@@ -143,8 +156,12 @@
|
143 |
156 |
nodeRef(nr).arcRef(ar).edgeRef(er).
|
144 |
157 |
nodeCrossRef(ncr).arcCrossRef(acr).edgeCrossRef(ecr).
|
145 |
158 |
node(fn, tn).arc(fa, ta).edge(fe, te).run();
|
146 |
159 |
|
|
160 |
check(countNodes(from) == countNodes(to), "Wrong copy.");
|
|
161 |
check(countEdges(from) == countEdges(to), "Wrong copy.");
|
|
162 |
check(countArcs(from) == countArcs(to), "Wrong copy.");
|
|
163 |
|
147 |
164 |
for (SmartGraph::NodeIt it(from); it != INVALID; ++it) {
|
148 |
165 |
check(ncr[nr[it]] == it, "Wrong copy.");
|
149 |
166 |
check(fnm[it] == tnm[nr[it]], "Wrong copy.");
|
150 |
167 |
}
|
... |
... |
@@ -179,8 +196,15 @@
|
179 |
196 |
}
|
180 |
197 |
check(tn == nr[fn], "Wrong copy.");
|
181 |
198 |
check(ta == ar[fa], "Wrong copy.");
|
182 |
199 |
check(te == er[fe], "Wrong copy.");
|
|
200 |
|
|
201 |
// Test repeated copy
|
|
202 |
graphCopy(from, to).run();
|
|
203 |
|
|
204 |
check(countNodes(from) == countNodes(to), "Wrong copy.");
|
|
205 |
check(countEdges(from) == countEdges(to), "Wrong copy.");
|
|
206 |
check(countArcs(from) == countArcs(to), "Wrong copy.");
|
183 |
207 |
}
|
184 |
208 |
|
185 |
209 |
|
186 |
210 |
int main() {
|