diff -r 2eebc8f7dca5 -r 17e36e175725 test/graph_copy_test.cc --- a/test/graph_copy_test.cc Tue Nov 01 08:24:30 2011 +0100 +++ b/test/graph_copy_test.cc Tue Dec 20 17:35:45 2011 +0100 @@ -29,6 +29,7 @@ void digraph_copy_test() { const int nn = 10; + // Build a digraph SmartDigraph from; SmartDigraph::NodeMap fnm(from); SmartDigraph::ArcMap fam(from); @@ -51,6 +52,7 @@ } } + // Test digraph copy ListDigraph to; ListDigraph::NodeMap tnm(to); ListDigraph::ArcMap tam(to); @@ -68,6 +70,9 @@ nodeRef(nr).arcRef(er). nodeCrossRef(ncr).arcCrossRef(ecr). node(fn, tn).arc(fa, ta).run(); + + check(countNodes(from) == countNodes(to), "Wrong copy."); + check(countArcs(from) == countArcs(to), "Wrong copy."); for (SmartDigraph::NodeIt it(from); it != INVALID; ++it) { check(ncr[nr[it]] == it, "Wrong copy."); @@ -90,11 +95,18 @@ } check(tn == nr[fn], "Wrong copy."); check(ta == er[fa], "Wrong copy."); + + // Test repeated copy + digraphCopy(from, to).run(); + + check(countNodes(from) == countNodes(to), "Wrong copy."); + check(countArcs(from) == countArcs(to), "Wrong copy."); } void graph_copy_test() { const int nn = 10; + // Build a graph SmartGraph from; SmartGraph::NodeMap fnm(from); SmartGraph::ArcMap fam(from); @@ -122,6 +134,7 @@ } } + // Test graph copy ListGraph to; ListGraph::NodeMap tnm(to); ListGraph::ArcMap tam(to); @@ -144,6 +157,10 @@ nodeCrossRef(ncr).arcCrossRef(acr).edgeCrossRef(ecr). node(fn, tn).arc(fa, ta).edge(fe, te).run(); + check(countNodes(from) == countNodes(to), "Wrong copy."); + check(countEdges(from) == countEdges(to), "Wrong copy."); + check(countArcs(from) == countArcs(to), "Wrong copy."); + for (SmartGraph::NodeIt it(from); it != INVALID; ++it) { check(ncr[nr[it]] == it, "Wrong copy."); check(fnm[it] == tnm[nr[it]], "Wrong copy."); @@ -180,6 +197,13 @@ check(tn == nr[fn], "Wrong copy."); check(ta == ar[fa], "Wrong copy."); check(te == er[fe], "Wrong copy."); + + // Test repeated copy + graphCopy(from, to).run(); + + check(countNodes(from) == countNodes(to), "Wrong copy."); + check(countEdges(from) == countEdges(to), "Wrong copy."); + check(countArcs(from) == countArcs(to), "Wrong copy."); }