gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Improve graph_copy_test.cc
0 1 0
default
1 file changed with 37 insertions and 31 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -18,6 +18,7 @@
18 18

	
19 19
#include <lemon/smart_graph.h>
20 20
#include <lemon/list_graph.h>
21
#include <lemon/static_graph.h>
21 22
#include <lemon/lgf_reader.h>
22 23
#include <lemon/error.h>
23 24

	
... ...
@@ -26,6 +27,7 @@
26 27
using namespace std;
27 28
using namespace lemon;
28 29

	
30
template <typename GR>
29 31
void digraph_copy_test() {
30 32
  const int nn = 10;
31 33

	
... ...
@@ -51,19 +53,19 @@
51 53
      if (i == 0 && j == 0) fa = arc;
52 54
    }
53 55
  }
56
  
57
  // Test digraph copy
58
  GR to;
59
  typename GR::template NodeMap<int> tnm(to);
60
  typename GR::template ArcMap<int> tam(to);
61
  typename GR::Node tn;
62
  typename GR::Arc ta;
54 63

	
55
  // Test digraph copy
56
  ListDigraph to;
57
  ListDigraph::NodeMap<int> tnm(to);
58
  ListDigraph::ArcMap<int> tam(to);
59
  ListDigraph::Node tn;
60
  ListDigraph::Arc ta;
64
  SmartDigraph::NodeMap<typename GR::Node> nr(from);
65
  SmartDigraph::ArcMap<typename GR::Arc> er(from);
61 66

	
62
  SmartDigraph::NodeMap<ListDigraph::Node> nr(from);
63
  SmartDigraph::ArcMap<ListDigraph::Arc> er(from);
64

	
65
  ListDigraph::NodeMap<SmartDigraph::Node> ncr(to);
66
  ListDigraph::ArcMap<SmartDigraph::Arc> ecr(to);
67
  typename GR::template NodeMap<SmartDigraph::Node> ncr(to);
68
  typename GR::template ArcMap<SmartDigraph::Arc> ecr(to);
67 69

	
68 70
  digraphCopy(from, to).
69 71
    nodeMap(fnm, tnm).arcMap(fam, tam).
... ...
@@ -86,11 +88,11 @@
86 88
    check(nr[from.target(it)] == to.target(er[it]), "Wrong copy.");
87 89
  }
88 90

	
89
  for (ListDigraph::NodeIt it(to); it != INVALID; ++it) {
91
  for (typename GR::NodeIt it(to); it != INVALID; ++it) {
90 92
    check(nr[ncr[it]] == it, "Wrong copy.");
91 93
  }
92 94

	
93
  for (ListDigraph::ArcIt it(to); it != INVALID; ++it) {
95
  for (typename GR::ArcIt it(to); it != INVALID; ++it) {
94 96
    check(er[ecr[it]] == it, "Wrong copy.");
95 97
  }
96 98
  check(tn == nr[fn], "Wrong copy.");
... ...
@@ -103,6 +105,7 @@
103 105
  check(countArcs(from) == countArcs(to), "Wrong copy.");
104 106
}
105 107

	
108
template <typename GR>
106 109
void graph_copy_test() {
107 110
  const int nn = 10;
108 111

	
... ...
@@ -135,21 +138,21 @@
135 138
  }
136 139

	
137 140
  // Test graph copy
138
  ListGraph to;
139
  ListGraph::NodeMap<int> tnm(to);
140
  ListGraph::ArcMap<int> tam(to);
141
  ListGraph::EdgeMap<int> tem(to);
142
  ListGraph::Node tn;
143
  ListGraph::Arc ta;
144
  ListGraph::Edge te;
141
  GR to;
142
  typename GR::template NodeMap<int> tnm(to);
143
  typename GR::template ArcMap<int> tam(to);
144
  typename GR::template EdgeMap<int> tem(to);
145
  typename GR::Node tn;
146
  typename GR::Arc ta;
147
  typename GR::Edge te;
145 148

	
146
  SmartGraph::NodeMap<ListGraph::Node> nr(from);
147
  SmartGraph::ArcMap<ListGraph::Arc> ar(from);
148
  SmartGraph::EdgeMap<ListGraph::Edge> er(from);
149
  SmartGraph::NodeMap<typename GR::Node> nr(from);
150
  SmartGraph::ArcMap<typename GR::Arc> ar(from);
151
  SmartGraph::EdgeMap<typename GR::Edge> er(from);
149 152

	
150
  ListGraph::NodeMap<SmartGraph::Node> ncr(to);
151
  ListGraph::ArcMap<SmartGraph::Arc> acr(to);
152
  ListGraph::EdgeMap<SmartGraph::Edge> ecr(to);
153
  typename GR::template NodeMap<SmartGraph::Node> ncr(to);
154
  typename GR::template ArcMap<SmartGraph::Arc> acr(to);
155
  typename GR::template EdgeMap<SmartGraph::Edge> ecr(to);
153 156

	
154 157
  graphCopy(from, to).
155 158
    nodeMap(fnm, tnm).arcMap(fam, tam).edgeMap(fem, tem).
... ...
@@ -184,14 +187,14 @@
184 187
          "Wrong copy.");
185 188
  }
186 189

	
187
  for (ListGraph::NodeIt it(to); it != INVALID; ++it) {
190
  for (typename GR::NodeIt it(to); it != INVALID; ++it) {
188 191
    check(nr[ncr[it]] == it, "Wrong copy.");
189 192
  }
190 193

	
191
  for (ListGraph::ArcIt it(to); it != INVALID; ++it) {
194
  for (typename GR::ArcIt it(to); it != INVALID; ++it) {
192 195
    check(ar[acr[it]] == it, "Wrong copy.");
193 196
  }
194
  for (ListGraph::EdgeIt it(to); it != INVALID; ++it) {
197
  for (typename GR::EdgeIt it(to); it != INVALID; ++it) {
195 198
    check(er[ecr[it]] == it, "Wrong copy.");
196 199
  }
197 200
  check(tn == nr[fn], "Wrong copy.");
... ...
@@ -208,8 +211,11 @@
208 211

	
209 212

	
210 213
int main() {
211
  digraph_copy_test();
212
  graph_copy_test();
214
  digraph_copy_test<SmartDigraph>();
215
  digraph_copy_test<ListDigraph>();
216
  digraph_copy_test<StaticDigraph>();
217
  graph_copy_test<SmartGraph>();
218
  graph_copy_test<ListGraph>();
213 219

	
214 220
  return 0;
215 221
}
0 comments (0 inline)