1.1 --- a/test/digraph_test.cc Tue Aug 25 11:09:02 2009 +0200
1.2 +++ b/test/digraph_test.cc Tue Aug 25 13:58:43 2009 +0200
1.3 @@ -19,6 +19,7 @@
1.4 #include <lemon/concepts/digraph.h>
1.5 #include <lemon/list_graph.h>
1.6 #include <lemon/smart_graph.h>
1.7 +#include <lemon/static_graph.h>
1.8 #include <lemon/full_graph.h>
1.9
1.10 #include "test_tools.h"
1.11 @@ -317,6 +318,10 @@
1.12 checkConcept<ExtendableDigraphComponent<>, SmartDigraph>();
1.13 checkConcept<ClearableDigraphComponent<>, SmartDigraph>();
1.14 }
1.15 + { // Checking StaticDigraph
1.16 + checkConcept<Digraph, StaticDigraph>();
1.17 + checkConcept<ClearableDigraphComponent<>, StaticDigraph>();
1.18 + }
1.19 { // Checking FullDigraph
1.20 checkConcept<Digraph, FullDigraph>();
1.21 }
1.22 @@ -372,6 +377,76 @@
1.23 check(!g.valid(g.arcFromId(-1)), "Wrong validity check");
1.24 }
1.25
1.26 +void checkStaticDigraph() {
1.27 + SmartDigraph g;
1.28 + SmartDigraph::NodeMap<StaticDigraph::Node> nref(g);
1.29 + SmartDigraph::ArcMap<StaticDigraph::Arc> aref(g);
1.30 +
1.31 + StaticDigraph G;
1.32 +
1.33 + checkGraphNodeList(G, 0);
1.34 + checkGraphArcList(G, 0);
1.35 +
1.36 + G.build(g, nref, aref);
1.37 +
1.38 + checkGraphNodeList(G, 0);
1.39 + checkGraphArcList(G, 0);
1.40 +
1.41 + SmartDigraph::Node
1.42 + n1 = g.addNode(),
1.43 + n2 = g.addNode(),
1.44 + n3 = g.addNode();
1.45 +
1.46 + G.build(g, nref, aref);
1.47 +
1.48 + checkGraphNodeList(G, 3);
1.49 + checkGraphArcList(G, 0);
1.50 +
1.51 + SmartDigraph::Arc a1 = g.addArc(n1, n2);
1.52 +
1.53 + G.build(g, nref, aref);
1.54 +
1.55 + check(G.source(aref[a1]) == nref[n1] && G.target(aref[a1]) == nref[n2],
1.56 + "Wrong arc or wrong references");
1.57 + checkGraphNodeList(G, 3);
1.58 + checkGraphArcList(G, 1);
1.59 +
1.60 + checkGraphOutArcList(G, nref[n1], 1);
1.61 + checkGraphOutArcList(G, nref[n2], 0);
1.62 + checkGraphOutArcList(G, nref[n3], 0);
1.63 +
1.64 + checkGraphInArcList(G, nref[n1], 0);
1.65 + checkGraphInArcList(G, nref[n2], 1);
1.66 + checkGraphInArcList(G, nref[n3], 0);
1.67 +
1.68 + checkGraphConArcList(G, 1);
1.69 +
1.70 + SmartDigraph::Arc
1.71 + a2 = g.addArc(n2, n1),
1.72 + a3 = g.addArc(n2, n3),
1.73 + a4 = g.addArc(n2, n3);
1.74 +
1.75 + digraphCopy(g, G).nodeRef(nref).run();
1.76 +
1.77 + checkGraphNodeList(G, 3);
1.78 + checkGraphArcList(G, 4);
1.79 +
1.80 + checkGraphOutArcList(G, nref[n1], 1);
1.81 + checkGraphOutArcList(G, nref[n2], 3);
1.82 + checkGraphOutArcList(G, nref[n3], 0);
1.83 +
1.84 + checkGraphInArcList(G, nref[n1], 1);
1.85 + checkGraphInArcList(G, nref[n2], 1);
1.86 + checkGraphInArcList(G, nref[n3], 2);
1.87 +
1.88 + checkGraphConArcList(G, 4);
1.89 +
1.90 + checkNodeIds(G);
1.91 + checkArcIds(G);
1.92 + checkGraphNodeMap(G);
1.93 + checkGraphArcMap(G);
1.94 +}
1.95 +
1.96 void checkFullDigraph(int num) {
1.97 typedef FullDigraph Digraph;
1.98 DIGRAPH_TYPEDEFS(Digraph);
1.99 @@ -419,6 +494,9 @@
1.100 checkDigraphSnapshot<SmartDigraph>();
1.101 checkDigraphValidity<SmartDigraph>();
1.102 }
1.103 + { // Checking StaticDigraph
1.104 + checkStaticDigraph();
1.105 + }
1.106 { // Checking FullDigraph
1.107 checkFullDigraph(8);
1.108 }