Changeset 1680:4f8b9cee576b in lemon0.x for test
 Timestamp:
 09/12/05 11:19:52 (15 years ago)
 Branch:
 default
 Phase:
 public
 Convert:
 svn:c9d7d8f590d60310b91f818b3a526b0e/lemon/trunk@2199
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

test/undir_graph_test.cc
r1568 r1680 6 6 #include <lemon/smart_graph.h> 7 7 #include <lemon/full_graph.h> 8 #include <lemon/grid_graph.h> 8 9 9 10 #include <lemon/graph_utils.h> … … 44 45 45 46 checkConcept<UndirGraph, UndirGraph>(); 47 48 checkConcept<UndirGraph, GridGraph>(); 46 49 } 47 50 48 51 template <typename Graph> 49 52 void check_item_counts(Graph &g, int n, int e) { 50 check(countNodes(g)==n, "Wrong node number."); 51 check(countEdges(g)==2*e, "Wrong edge number."); 53 int nn = 0; 54 for (typename Graph::NodeIt it(g); it != INVALID; ++it) { 55 ++nn; 56 } 57 58 check(nn == n, "Wrong node number."); 59 check(countNodes(g) == n, "Wrong node number."); 60 61 int ee = 0; 62 for (typename Graph::EdgeIt it(g); it != INVALID; ++it) { 63 ++ee; 64 } 65 66 check(ee == 2*e, "Wrong edge number."); 67 check(countEdges(g) == 2*e, "Wrong edge number."); 68 69 int uee = 0; 70 for (typename Graph::UndirEdgeIt it(g); it != INVALID; ++it) { 71 ++uee; 72 } 73 74 check(uee == e, "Wrong undir edge number."); 75 check(countUndirEdges(g) == e, "Wrong undir edge number."); 52 76 } 53 77 … … 109 133 110 134 check_item_counts(g,3,2); 111 112 135 } 136 137 void checkGridGraph(const GridGraph& g, int w, int h) { 138 check(g.width() == w, "Wrong width"); 139 check(g.height() == h, "Wrong height"); 140 141 for (int i = 0; i < w; ++i) { 142 for (int j = 0; j < h; ++j) { 143 check(g.col(g(i, j)) == i, "Wrong col"); 144 check(g.row(g(i, j)) == j, "Wrong row"); 145 } 146 } 147 148 for (int i = 0; i < w; ++i) { 149 for (int j = 0; j < h  1; ++j) { 150 check(g.source(g.down(g(i, j))) == g(i, j), "Wrong down"); 151 check(g.target(g.down(g(i, j))) == g(i, j + 1), "Wrong down"); 152 } 153 check(g.down(g(i, h  1)) == INVALID, "Wrong down"); 154 } 155 156 for (int i = 0; i < w; ++i) { 157 for (int j = 1; j < h; ++j) { 158 check(g.source(g.up(g(i, j))) == g(i, j), "Wrong up"); 159 check(g.target(g.up(g(i, j))) == g(i, j  1), "Wrong up"); 160 } 161 check(g.up(g(i, 0)) == INVALID, "Wrong up"); 162 } 163 164 for (int j = 0; j < h; ++j) { 165 for (int i = 0; i < w  1; ++i) { 166 check(g.source(g.right(g(i, j))) == g(i, j), "Wrong right"); 167 check(g.target(g.right(g(i, j))) == g(i + 1, j), "Wrong right"); 168 } 169 check(g.right(g(w  1, j)) == INVALID, "Wrong right"); 170 } 171 172 for (int j = 0; j < h; ++j) { 173 for (int i = 1; i < w; ++i) { 174 check(g.source(g.left(g(i, j))) == g(i, j), "Wrong left"); 175 check(g.target(g.left(g(i, j))) == g(i  1, j), "Wrong left"); 176 } 177 check(g.left(g(0, j)) == INVALID, "Wrong left"); 178 } 113 179 } 114 180 … … 124 190 } 125 191 192 { 193 GridGraph g(5, 6); 194 check_item_counts(g, 30, 49); 195 checkGridGraph(g, 5, 6); 196 } 197 198 std::cout << __FILE__ ": All tests passed.\n"; 199 126 200 return 0; 127 201 }
Note: See TracChangeset
for help on using the changeset viewer.