Changeset 1680:4f8b9cee576b in lemon-0.x for test/undir_graph_test.cc
- Timestamp:
- 09/12/05 11:19:52 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/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.