1.1 --- a/test/graph_test.cc Tue Sep 02 22:32:04 2008 +0200
1.2 +++ b/test/graph_test.cc Mon Oct 20 12:36:02 2008 +0200
1.3 @@ -126,6 +126,7 @@
1.4 }
1.5 // { // Checking FullGraph
1.6 // checkConcept<Graph, FullGraph>();
1.7 +// checkGraphIterators<FullGraph>();
1.8 // }
1.9 { // Checking GridGraph
1.10 checkConcept<Graph, GridGraph>();
1.11 @@ -186,76 +187,83 @@
1.12 check(!g.valid(g.arcFromId(-1)), "Wrong validity check");
1.13 }
1.14
1.15 -void checkGridGraph(const GridGraph& g, int w, int h) {
1.16 - check(g.width() == w, "Wrong width");
1.17 - check(g.height() == h, "Wrong height");
1.18 +void checkGridGraph(int width, int height) {
1.19 + typedef GridGraph Graph;
1.20 + GRAPH_TYPEDEFS(Graph);
1.21 + Graph G(width, height);
1.22
1.23 - for (int i = 0; i < w; ++i) {
1.24 - for (int j = 0; j < h; ++j) {
1.25 - check(g.col(g(i, j)) == i, "Wrong col");
1.26 - check(g.row(g(i, j)) == j, "Wrong row");
1.27 + check(G.width() == width, "Wrong row number");
1.28 + check(G.height() == height, "Wrong column number");
1.29 +
1.30 + for (int i = 0; i < width; ++i) {
1.31 + for (int j = 0; j < height; ++j) {
1.32 + check(G.col(G(i, j)) == i, "Wrong column");
1.33 + check(G.row(G(i, j)) == j, "Wrong row");
1.34 + check(G.pos(G(i, j)).x == i, "Wrong column");
1.35 + check(G.pos(G(i, j)).y == j, "Wrong row");
1.36 }
1.37 }
1.38
1.39 - for (int i = 0; i < w; ++i) {
1.40 - for (int j = 0; j < h - 1; ++j) {
1.41 - check(g.source(g.down(g(i, j))) == g(i, j), "Wrong down");
1.42 - check(g.target(g.down(g(i, j))) == g(i, j + 1), "Wrong down");
1.43 + for (int j = 0; j < height; ++j) {
1.44 + for (int i = 0; i < width - 1; ++i) {
1.45 + check(G.source(G.right(G(i, j))) == G(i, j), "Wrong right");
1.46 + check(G.target(G.right(G(i, j))) == G(i + 1, j), "Wrong right");
1.47 }
1.48 - check(g.down(g(i, h - 1)) == INVALID, "Wrong down");
1.49 + check(G.right(G(width - 1, j)) == INVALID, "Wrong right");
1.50 }
1.51
1.52 - for (int i = 0; i < w; ++i) {
1.53 - for (int j = 1; j < h; ++j) {
1.54 - check(g.source(g.up(g(i, j))) == g(i, j), "Wrong up");
1.55 - check(g.target(g.up(g(i, j))) == g(i, j - 1), "Wrong up");
1.56 + for (int j = 0; j < height; ++j) {
1.57 + for (int i = 1; i < width; ++i) {
1.58 + check(G.source(G.left(G(i, j))) == G(i, j), "Wrong left");
1.59 + check(G.target(G.left(G(i, j))) == G(i - 1, j), "Wrong left");
1.60 }
1.61 - check(g.up(g(i, 0)) == INVALID, "Wrong up");
1.62 + check(G.left(G(0, j)) == INVALID, "Wrong left");
1.63 }
1.64
1.65 - for (int j = 0; j < h; ++j) {
1.66 - for (int i = 0; i < w - 1; ++i) {
1.67 - check(g.source(g.right(g(i, j))) == g(i, j), "Wrong right");
1.68 - check(g.target(g.right(g(i, j))) == g(i + 1, j), "Wrong right");
1.69 + for (int i = 0; i < width; ++i) {
1.70 + for (int j = 0; j < height - 1; ++j) {
1.71 + check(G.source(G.up(G(i, j))) == G(i, j), "Wrong up");
1.72 + check(G.target(G.up(G(i, j))) == G(i, j + 1), "Wrong up");
1.73 }
1.74 - check(g.right(g(w - 1, j)) == INVALID, "Wrong right");
1.75 + check(G.up(G(i, height - 1)) == INVALID, "Wrong up");
1.76 }
1.77
1.78 - for (int j = 0; j < h; ++j) {
1.79 - for (int i = 1; i < w; ++i) {
1.80 - check(g.source(g.left(g(i, j))) == g(i, j), "Wrong left");
1.81 - check(g.target(g.left(g(i, j))) == g(i - 1, j), "Wrong left");
1.82 + for (int i = 0; i < width; ++i) {
1.83 + for (int j = 1; j < height; ++j) {
1.84 + check(G.source(G.down(G(i, j))) == G(i, j), "Wrong down");
1.85 + check(G.target(G.down(G(i, j))) == G(i, j - 1), "Wrong down");
1.86 }
1.87 - check(g.left(g(0, j)) == INVALID, "Wrong left");
1.88 + check(G.down(G(i, 0)) == INVALID, "Wrong down");
1.89 }
1.90
1.91 - checkGraphNodeList(g, w*h);
1.92 - checkGraphArcList(g, 2*(2*w*h-w-h));
1.93 - checkGraphEdgeList(g, 2*w*h-w-h);
1.94 + checkGraphNodeList(G, width * height);
1.95 + checkGraphEdgeList(G, width * (height - 1) + (width - 1) * height);
1.96 + checkGraphArcList(G, 2 * (width * (height - 1) + (width - 1) * height));
1.97
1.98 - checkGraphOutArcList(g, g(0,0), 2);
1.99 - checkGraphOutArcList(g, g(0,1), 3);
1.100 - checkGraphOutArcList(g, g(w-2,h-2), 4);
1.101 + for (NodeIt n(G); n != INVALID; ++n) {
1.102 + int nb = 4;
1.103 + if (G.col(n) == 0) --nb;
1.104 + if (G.col(n) == width - 1) --nb;
1.105 + if (G.row(n) == 0) --nb;
1.106 + if (G.row(n) == height - 1) --nb;
1.107
1.108 - checkGraphInArcList(g, g(0,0), 2);
1.109 - checkGraphInArcList(g, g(0,1), 3);
1.110 - checkGraphInArcList(g, g(w-2,h-2), 4);
1.111 + checkGraphOutArcList(G, n, nb);
1.112 + checkGraphInArcList(G, n, nb);
1.113 + checkGraphIncEdgeList(G, n, nb);
1.114 + }
1.115
1.116 - checkGraphIncEdgeList(g, g(0,0), 2);
1.117 - checkGraphIncEdgeList(g, g(0,1), 3);
1.118 - checkGraphIncEdgeList(g, g(w-2,h-2), 4);
1.119 + checkArcDirections(G);
1.120
1.121 - checkGraphConArcList(g, 2*(2*w*h-w-h));
1.122 - checkGraphConEdgeList(g, 2*w*h-w-h);
1.123 + checkGraphConArcList(G, 2 * (width * (height - 1) + (width - 1) * height));
1.124 + checkGraphConEdgeList(G, width * (height - 1) + (width - 1) * height);
1.125
1.126 - checkArcDirections(g);
1.127 + checkNodeIds(G);
1.128 + checkArcIds(G);
1.129 + checkEdgeIds(G);
1.130 + checkGraphNodeMap(G);
1.131 + checkGraphArcMap(G);
1.132 + checkGraphEdgeMap(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 @@ -273,8 +281,11 @@
1.144 // checkGraphEdgeList(g, 10);
1.145 // }
1.146 { // Checking GridGraph
1.147 - GridGraph g(5, 6);
1.148 - checkGridGraph(g, 5, 6);
1.149 + checkGridGraph(5, 8);
1.150 + checkGridGraph(8, 5);
1.151 + checkGridGraph(5, 5);
1.152 + checkGridGraph(0, 0);
1.153 + checkGridGraph(1, 1);
1.154 }
1.155 }
1.156