[Lemon-commits] Peter Kovacs: Improve graph_copy_test.cc
Lemon HG
hg at lemon.cs.elte.hu
Fri Jun 25 06:51:45 CEST 2010
details: http://lemon.cs.elte.hu/hg/lemon/rev/24b3f18ed9e2
changeset: 989:24b3f18ed9e2
user: Peter Kovacs <kpeter [at] inf.elte.hu>
date: Tue Jun 22 16:13:00 2010 +0200
description:
Improve graph_copy_test.cc
diffstat:
test/graph_copy_test.cc | 68 ++++++++++++++++++---------------
1 files changed, 37 insertions(+), 31 deletions(-)
diffs (139 lines):
diff --git a/test/graph_copy_test.cc b/test/graph_copy_test.cc
--- a/test/graph_copy_test.cc
+++ b/test/graph_copy_test.cc
@@ -18,6 +18,7 @@
#include <lemon/smart_graph.h>
#include <lemon/list_graph.h>
+#include <lemon/static_graph.h>
#include <lemon/lgf_reader.h>
#include <lemon/error.h>
@@ -26,6 +27,7 @@
using namespace std;
using namespace lemon;
+template <typename GR>
void digraph_copy_test() {
const int nn = 10;
@@ -51,19 +53,19 @@
if (i == 0 && j == 0) fa = arc;
}
}
+
+ // Test digraph copy
+ GR to;
+ typename GR::template NodeMap<int> tnm(to);
+ typename GR::template ArcMap<int> tam(to);
+ typename GR::Node tn;
+ typename GR::Arc ta;
- // Test digraph copy
- ListDigraph to;
- ListDigraph::NodeMap<int> tnm(to);
- ListDigraph::ArcMap<int> tam(to);
- ListDigraph::Node tn;
- ListDigraph::Arc ta;
+ SmartDigraph::NodeMap<typename GR::Node> nr(from);
+ SmartDigraph::ArcMap<typename GR::Arc> er(from);
- SmartDigraph::NodeMap<ListDigraph::Node> nr(from);
- SmartDigraph::ArcMap<ListDigraph::Arc> er(from);
-
- ListDigraph::NodeMap<SmartDigraph::Node> ncr(to);
- ListDigraph::ArcMap<SmartDigraph::Arc> ecr(to);
+ typename GR::template NodeMap<SmartDigraph::Node> ncr(to);
+ typename GR::template ArcMap<SmartDigraph::Arc> ecr(to);
digraphCopy(from, to).
nodeMap(fnm, tnm).arcMap(fam, tam).
@@ -86,11 +88,11 @@
check(nr[from.target(it)] == to.target(er[it]), "Wrong copy.");
}
- for (ListDigraph::NodeIt it(to); it != INVALID; ++it) {
+ for (typename GR::NodeIt it(to); it != INVALID; ++it) {
check(nr[ncr[it]] == it, "Wrong copy.");
}
- for (ListDigraph::ArcIt it(to); it != INVALID; ++it) {
+ for (typename GR::ArcIt it(to); it != INVALID; ++it) {
check(er[ecr[it]] == it, "Wrong copy.");
}
check(tn == nr[fn], "Wrong copy.");
@@ -103,6 +105,7 @@
check(countArcs(from) == countArcs(to), "Wrong copy.");
}
+template <typename GR>
void graph_copy_test() {
const int nn = 10;
@@ -135,21 +138,21 @@
}
// Test graph copy
- ListGraph to;
- ListGraph::NodeMap<int> tnm(to);
- ListGraph::ArcMap<int> tam(to);
- ListGraph::EdgeMap<int> tem(to);
- ListGraph::Node tn;
- ListGraph::Arc ta;
- ListGraph::Edge te;
+ GR to;
+ typename GR::template NodeMap<int> tnm(to);
+ typename GR::template ArcMap<int> tam(to);
+ typename GR::template EdgeMap<int> tem(to);
+ typename GR::Node tn;
+ typename GR::Arc ta;
+ typename GR::Edge te;
- SmartGraph::NodeMap<ListGraph::Node> nr(from);
- SmartGraph::ArcMap<ListGraph::Arc> ar(from);
- SmartGraph::EdgeMap<ListGraph::Edge> er(from);
+ SmartGraph::NodeMap<typename GR::Node> nr(from);
+ SmartGraph::ArcMap<typename GR::Arc> ar(from);
+ SmartGraph::EdgeMap<typename GR::Edge> er(from);
- ListGraph::NodeMap<SmartGraph::Node> ncr(to);
- ListGraph::ArcMap<SmartGraph::Arc> acr(to);
- ListGraph::EdgeMap<SmartGraph::Edge> ecr(to);
+ typename GR::template NodeMap<SmartGraph::Node> ncr(to);
+ typename GR::template ArcMap<SmartGraph::Arc> acr(to);
+ typename GR::template EdgeMap<SmartGraph::Edge> ecr(to);
graphCopy(from, to).
nodeMap(fnm, tnm).arcMap(fam, tam).edgeMap(fem, tem).
@@ -184,14 +187,14 @@
"Wrong copy.");
}
- for (ListGraph::NodeIt it(to); it != INVALID; ++it) {
+ for (typename GR::NodeIt it(to); it != INVALID; ++it) {
check(nr[ncr[it]] == it, "Wrong copy.");
}
- for (ListGraph::ArcIt it(to); it != INVALID; ++it) {
+ for (typename GR::ArcIt it(to); it != INVALID; ++it) {
check(ar[acr[it]] == it, "Wrong copy.");
}
- for (ListGraph::EdgeIt it(to); it != INVALID; ++it) {
+ for (typename GR::EdgeIt it(to); it != INVALID; ++it) {
check(er[ecr[it]] == it, "Wrong copy.");
}
check(tn == nr[fn], "Wrong copy.");
@@ -208,8 +211,11 @@
int main() {
- digraph_copy_test();
- graph_copy_test();
+ digraph_copy_test<SmartDigraph>();
+ digraph_copy_test<ListDigraph>();
+ digraph_copy_test<StaticDigraph>();
+ graph_copy_test<SmartGraph>();
+ graph_copy_test<ListGraph>();
return 0;
}
More information about the Lemon-commits
mailing list