1.1 --- a/test/graph_test.cc Tue Sep 02 22:27:19 2008 +0200
1.2 +++ b/test/graph_test.cc Tue Sep 02 22:32:04 2008 +0200
1.3 @@ -20,7 +20,7 @@
1.4 #include <lemon/list_graph.h>
1.5 #include <lemon/smart_graph.h>
1.6 // #include <lemon/full_graph.h>
1.7 -// #include <lemon/grid_graph.h>
1.8 +#include <lemon/grid_graph.h>
1.9
1.10 #include "test_tools.h"
1.11 #include "graph_test.h"
1.12 @@ -126,12 +126,10 @@
1.13 }
1.14 // { // Checking FullGraph
1.15 // checkConcept<Graph, FullGraph>();
1.16 -// checkGraphIterators<FullGraph>();
1.17 // }
1.18 -// { // Checking GridGraph
1.19 -// checkConcept<Graph, GridGraph>();
1.20 -// checkGraphIterators<GridGraph>();
1.21 -// }
1.22 + { // Checking GridGraph
1.23 + checkConcept<Graph, GridGraph>();
1.24 + }
1.25 }
1.26
1.27 template <typename Graph>
1.28 @@ -188,49 +186,77 @@
1.29 check(!g.valid(g.arcFromId(-1)), "Wrong validity check");
1.30 }
1.31
1.32 -// void checkGridGraph(const GridGraph& g, int w, int h) {
1.33 -// check(g.width() == w, "Wrong width");
1.34 -// check(g.height() == h, "Wrong height");
1.35 +void checkGridGraph(const GridGraph& g, int w, int h) {
1.36 + check(g.width() == w, "Wrong width");
1.37 + check(g.height() == h, "Wrong height");
1.38
1.39 -// for (int i = 0; i < w; ++i) {
1.40 -// for (int j = 0; j < h; ++j) {
1.41 -// check(g.col(g(i, j)) == i, "Wrong col");
1.42 -// check(g.row(g(i, j)) == j, "Wrong row");
1.43 -// }
1.44 -// }
1.45 + for (int i = 0; i < w; ++i) {
1.46 + for (int j = 0; j < h; ++j) {
1.47 + check(g.col(g(i, j)) == i, "Wrong col");
1.48 + check(g.row(g(i, j)) == j, "Wrong row");
1.49 + }
1.50 + }
1.51
1.52 -// for (int i = 0; i < w; ++i) {
1.53 -// for (int j = 0; j < h - 1; ++j) {
1.54 -// check(g.source(g.down(g(i, j))) == g(i, j), "Wrong down");
1.55 -// check(g.target(g.down(g(i, j))) == g(i, j + 1), "Wrong down");
1.56 -// }
1.57 -// check(g.down(g(i, h - 1)) == INVALID, "Wrong down");
1.58 -// }
1.59 + for (int i = 0; i < w; ++i) {
1.60 + for (int j = 0; j < h - 1; ++j) {
1.61 + check(g.source(g.down(g(i, j))) == g(i, j), "Wrong down");
1.62 + check(g.target(g.down(g(i, j))) == g(i, j + 1), "Wrong down");
1.63 + }
1.64 + check(g.down(g(i, h - 1)) == INVALID, "Wrong down");
1.65 + }
1.66
1.67 -// for (int i = 0; i < w; ++i) {
1.68 -// for (int j = 1; j < h; ++j) {
1.69 -// check(g.source(g.up(g(i, j))) == g(i, j), "Wrong up");
1.70 -// check(g.target(g.up(g(i, j))) == g(i, j - 1), "Wrong up");
1.71 -// }
1.72 -// check(g.up(g(i, 0)) == INVALID, "Wrong up");
1.73 -// }
1.74 + for (int i = 0; i < w; ++i) {
1.75 + for (int j = 1; j < h; ++j) {
1.76 + check(g.source(g.up(g(i, j))) == g(i, j), "Wrong up");
1.77 + check(g.target(g.up(g(i, j))) == g(i, j - 1), "Wrong up");
1.78 + }
1.79 + check(g.up(g(i, 0)) == INVALID, "Wrong up");
1.80 + }
1.81
1.82 -// for (int j = 0; j < h; ++j) {
1.83 -// for (int i = 0; i < w - 1; ++i) {
1.84 -// check(g.source(g.right(g(i, j))) == g(i, j), "Wrong right");
1.85 -// check(g.target(g.right(g(i, j))) == g(i + 1, j), "Wrong right");
1.86 -// }
1.87 -// check(g.right(g(w - 1, j)) == INVALID, "Wrong right");
1.88 -// }
1.89 + for (int j = 0; j < h; ++j) {
1.90 + for (int i = 0; i < w - 1; ++i) {
1.91 + check(g.source(g.right(g(i, j))) == g(i, j), "Wrong right");
1.92 + check(g.target(g.right(g(i, j))) == g(i + 1, j), "Wrong right");
1.93 + }
1.94 + check(g.right(g(w - 1, j)) == INVALID, "Wrong right");
1.95 + }
1.96
1.97 -// for (int j = 0; j < h; ++j) {
1.98 -// for (int i = 1; i < w; ++i) {
1.99 -// check(g.source(g.left(g(i, j))) == g(i, j), "Wrong left");
1.100 -// check(g.target(g.left(g(i, j))) == g(i - 1, j), "Wrong left");
1.101 -// }
1.102 -// check(g.left(g(0, j)) == INVALID, "Wrong left");
1.103 -// }
1.104 -// }
1.105 + for (int j = 0; j < h; ++j) {
1.106 + for (int i = 1; i < w; ++i) {
1.107 + check(g.source(g.left(g(i, j))) == g(i, j), "Wrong left");
1.108 + check(g.target(g.left(g(i, j))) == g(i - 1, j), "Wrong left");
1.109 + }
1.110 + check(g.left(g(0, j)) == INVALID, "Wrong left");
1.111 + }
1.112 +
1.113 + checkGraphNodeList(g, w*h);
1.114 + checkGraphArcList(g, 2*(2*w*h-w-h));
1.115 + checkGraphEdgeList(g, 2*w*h-w-h);
1.116 +
1.117 + checkGraphOutArcList(g, g(0,0), 2);
1.118 + checkGraphOutArcList(g, g(0,1), 3);
1.119 + checkGraphOutArcList(g, g(w-2,h-2), 4);
1.120 +
1.121 + checkGraphInArcList(g, g(0,0), 2);
1.122 + checkGraphInArcList(g, g(0,1), 3);
1.123 + checkGraphInArcList(g, g(w-2,h-2), 4);
1.124 +
1.125 + checkGraphIncEdgeList(g, g(0,0), 2);
1.126 + checkGraphIncEdgeList(g, g(0,1), 3);
1.127 + checkGraphIncEdgeList(g, g(w-2,h-2), 4);
1.128 +
1.129 + checkGraphConArcList(g, 2*(2*w*h-w-h));
1.130 + checkGraphConEdgeList(g, 2*w*h-w-h);
1.131 +
1.132 + checkArcDirections(g);
1.133 +
1.134 + checkNodeIds(g);
1.135 + checkArcIds(g);
1.136 + checkEdgeIds(g);
1.137 + checkGraphNodeMap(g);
1.138 + checkGraphArcMap(g);
1.139 + checkGraphEdgeMap(g);
1.140 +}
1.141
1.142 void checkGraphs() {
1.143 { // Checking ListGraph
1.144 @@ -246,12 +272,10 @@
1.145 // checkGraphNodeList(g, 5);
1.146 // checkGraphEdgeList(g, 10);
1.147 // }
1.148 -// { // Checking GridGraph
1.149 -// GridGraph g(5, 6);
1.150 -// checkGraphNodeList(g, 30);
1.151 -// checkGraphEdgeList(g, 49);
1.152 -// checkGridGraph(g, 5, 6);
1.153 -// }
1.154 + { // Checking GridGraph
1.155 + GridGraph g(5, 6);
1.156 + checkGridGraph(g, 5, 6);
1.157 + }
1.158 }
1.159
1.160 int main() {