1.1 --- a/src/test/undir_graph_test.cc Wed Jan 05 12:26:59 2005 +0000
1.2 +++ b/src/test/undir_graph_test.cc Wed Jan 05 14:34:00 2005 +0000
1.3 @@ -6,14 +6,15 @@
1.4 #include <lemon/smart_graph.h>
1.5 #include <lemon/full_graph.h>
1.6
1.7 +#include <lemon/graph_utils.h>
1.8 +
1.9 #include "test_tools.h"
1.10
1.11
1.12 using namespace lemon;
1.13 using namespace lemon::concept;
1.14
1.15 -
1.16 -int main() {
1.17 +void check_concepts() {
1.18 typedef UndirGraphExtender<ListGraphBase> UndirListGraphBase;
1.19
1.20 typedef IterableUndirGraphExtender<
1.21 @@ -40,6 +41,66 @@
1.22 checkConcept<ExtendableUndirGraph, UndirSmartGraph>();
1.23
1.24 checkConcept<UndirGraph, UndirGraph>();
1.25 +}
1.26 +
1.27 +typedef UndirListGraph Graph;
1.28 +typedef Graph::Node Node;
1.29 +typedef Graph::UndirEdge UEdge;
1.30 +typedef Graph::Edge Edge;
1.31 +typedef Graph::NodeIt NodeIt;
1.32 +typedef Graph::UndirEdgeIt UEdgeIt;
1.33 +typedef Graph::EdgeIt EdgeIt;
1.34 +
1.35 +void check_item_counts(Graph &g, int n, int e) {
1.36 + check(countNodes(g)==n, "Wrong node number.");
1.37 + check(countEdges(g)==2*e, "Wrong edge number.");
1.38 +}
1.39 +
1.40 +void print_items(Graph &g) {
1.41 + cout << "Nodes" << endl;
1.42 + int i=0;
1.43 + for(NodeIt it(g); it!=INVALID; ++it, ++i) {
1.44 + cout << " " << i << ": " << g.id(it) << endl;
1.45 + }
1.46 +
1.47 + cout << "UndirEdge" << endl;
1.48 + i=0;
1.49 + for(UEdgeIt it(g); it!=INVALID; ++it, ++i) {
1.50 + cout << " " << i << ": " << g.id(it)
1.51 + << " (" << g.id(g.source(it)) << ", " << g.id(g.target(it))
1.52 + << ")" << endl;
1.53 + }
1.54 +
1.55 + cout << "Edge" << endl;
1.56 + i=0;
1.57 + for(EdgeIt it(g); it!=INVALID; ++it, ++i) {
1.58 + cout << " " << i << ": " << g.id(it)
1.59 + << " (" << g.id(g.source(it)) << ", " << g.id(g.target(it))
1.60 + << ")" << endl;
1.61 + }
1.62 +
1.63 +}
1.64 +
1.65 +int main() {
1.66 + check_concepts();
1.67 +
1.68 +
1.69 + Graph g;
1.70 +
1.71 + check_item_counts(g,0,0);
1.72 +
1.73 + Node
1.74 + n1 = g.addNode(),
1.75 + n2 = g.addNode(),
1.76 + n3 = g.addNode();
1.77 +
1.78 + UEdge
1.79 + e1 = g.addEdge(n1, n2),
1.80 + e2 = g.addEdge(n2, n3);
1.81 +
1.82 + // print_items(g);
1.83 +
1.84 + check_item_counts(g,3,2);
1.85
1.86 return 0;
1.87 }