Merge back the whole branches/hugo++ to trunk.
1 #include "test_tools.h"
2 #include <hugo/smart_graph.h>
10 void check_Bfs_SmartGraph_Compile()
13 typedef SmartGraph Graph;
15 typedef Graph::Edge Edge;
16 typedef Graph::Node Node;
17 typedef Graph::EdgeIt EdgeIt;
18 typedef Graph::NodeIt NodeIt;
19 typedef Graph::EdgeMap<VType> LengthMap;
21 typedef Bfs<Graph> BType;
30 BType::PredNodeMap pn(G);
39 n = bfs_test.predNode(n);
40 d = bfs_test.distMap();
41 p = bfs_test.predMap();
42 pn = bfs_test.predNodeMap();
43 b = bfs_test.reached(n);
50 typedef SmartGraph Graph;
52 typedef Graph::Edge Edge;
53 typedef Graph::Node Node;
54 typedef Graph::EdgeIt EdgeIt;
55 typedef Graph::NodeIt NodeIt;
56 typedef Graph::EdgeMap<int> LengthMap;
60 PetStruct<Graph> ps = addPetersen(G,PET_SIZE);
65 Bfs<Graph> bfs_test(G);
68 check(bfs_test.dist(t)==3,"Bfs found a wrong path. " << bfs_test.dist(t));
71 for(EdgeIt e(G); e==INVALID; ++e) {
74 check( !bfs_test.reached(u) ||
75 (bfs_test.dist(v) > bfs_test.dist(u)+1),
79 ///\bug This works only for integer lengths
80 for(NodeIt v(G); v==INVALID; ++v)
81 if ( bfs_test.reached(v) ) {
82 Edge e=bfs_test.pred(v);
84 check(bfs_test.dist(v) - bfs_test.dist(u) == 1,
85 "Bad shortest path tree edge! Difference: "
86 << std::abs(bfs_test.dist(v) - bfs_test.dist(u)