18 |
18 |
19 #include <lemon/concepts/digraph.h> |
19 #include <lemon/concepts/digraph.h> |
20 #include <lemon/smart_graph.h> |
20 #include <lemon/smart_graph.h> |
21 #include <lemon/list_graph.h> |
21 #include <lemon/list_graph.h> |
22 #include <lemon/lgf_reader.h> |
22 #include <lemon/lgf_reader.h> |
23 |
|
24 #include <lemon/dfs.h> |
23 #include <lemon/dfs.h> |
25 #include <lemon/path.h> |
24 #include <lemon/path.h> |
26 |
25 |
27 #include "graph_test.h" |
26 #include "graph_test.h" |
28 #include "test_tools.h" |
27 #include "test_tools.h" |
86 typedef concepts::Digraph Digraph; |
85 typedef concepts::Digraph Digraph; |
87 typedef Digraph::Arc Arc; |
86 typedef Digraph::Arc Arc; |
88 typedef Digraph::Node Node; |
87 typedef Digraph::Node Node; |
89 |
88 |
90 Digraph g; |
89 Digraph g; |
91 dfs(g,Node()).run(); |
90 bool b; |
92 dfs(g).source(Node()).run(); |
91 dfs(g).run(Node()); |
|
92 b=dfs(g).run(Node(),Node()); |
|
93 dfs(g).run(); |
93 dfs(g) |
94 dfs(g) |
94 .predMap(concepts::WriteMap<Node,Arc>()) |
95 .predMap(concepts::ReadWriteMap<Node,Arc>()) |
95 .distMap(concepts::WriteMap<Node,VType>()) |
96 .distMap(concepts::ReadWriteMap<Node,VType>()) |
96 .reachedMap(concepts::ReadWriteMap<Node,bool>()) |
97 .reachedMap(concepts::ReadWriteMap<Node,bool>()) |
97 .processedMap(concepts::WriteMap<Node,bool>()) |
98 .processedMap(concepts::WriteMap<Node,bool>()) |
98 .run(Node()); |
99 .run(Node()); |
|
100 b=dfs(g) |
|
101 .predMap(concepts::ReadWriteMap<Node,Arc>()) |
|
102 .distMap(concepts::ReadWriteMap<Node,VType>()) |
|
103 .reachedMap(concepts::ReadWriteMap<Node,bool>()) |
|
104 .processedMap(concepts::WriteMap<Node,bool>()) |
|
105 .path(concepts::Path<Digraph>()) |
|
106 .dist(VType()) |
|
107 .run(Node(),Node()); |
|
108 dfs(g) |
|
109 .predMap(concepts::ReadWriteMap<Node,Arc>()) |
|
110 .distMap(concepts::ReadWriteMap<Node,VType>()) |
|
111 .reachedMap(concepts::ReadWriteMap<Node,bool>()) |
|
112 .processedMap(concepts::WriteMap<Node,bool>()) |
|
113 .run(); |
99 } |
114 } |
100 |
115 |
101 template <class Digraph> |
116 template <class Digraph> |
102 void checkDfs() { |
117 void checkDfs() { |
103 TEMPLATE_DIGRAPH_TYPEDEFS(Digraph); |
118 TEMPLATE_DIGRAPH_TYPEDEFS(Digraph); |
127 Arc e=dfs_test.predArc(v); |
142 Arc e=dfs_test.predArc(v); |
128 Node u=G.source(e); |
143 Node u=G.source(e); |
129 check(u==dfs_test.predNode(v),"Wrong tree."); |
144 check(u==dfs_test.predNode(v),"Wrong tree."); |
130 check(dfs_test.dist(v) - dfs_test.dist(u) == 1, |
145 check(dfs_test.dist(v) - dfs_test.dist(u) == 1, |
131 "Wrong distance. (" << dfs_test.dist(u) << "->" |
146 "Wrong distance. (" << dfs_test.dist(u) << "->" |
132 <<dfs_test.dist(v) << ')'); |
147 << dfs_test.dist(v) << ")"); |
133 } |
148 } |
134 } |
149 } |
|
150 } |
|
151 |
|
152 { |
|
153 NullMap<Node,Arc> myPredMap; |
|
154 dfs(G).predMap(myPredMap).run(s); |
135 } |
155 } |
136 } |
156 } |
137 |
157 |
138 int main() |
158 int main() |
139 { |
159 { |