test/graph_test.cc
changeset 334 ada5f74d1c9e
parent 228 b6732e0d38c5
child 335 160bf92c7cdc
     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() {