# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1277215980 -7200
# Node ID b0fe90eb04d1169eaa30410660a0d18803e47e56
# Parent 8087cf69e6643da496a4bf4ed3e1f473fdf1cc26
Improve graph_copy_test.cc
diff --git a/test/graph_copy_test.cc b/test/graph_copy_test.cc
|
a
|
b
|
|
| 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | } |