NewMapWin has become Dialog instead of Window. Therefore it is created dynamically, when there is need for it, instead of keeping one instance in memory. This solution is slower, but more correct than before.
6 #include <lemon/graph_utils.h>
8 #include <lemon/list_graph.h>
9 #include <lemon/smart_graph.h>
10 #include <lemon/full_graph.h>
12 #include "test_tools.h"
13 #include "graph_utils_test.h"
16 using namespace lemon;
22 typename Graph::Node n1=g.addNode();
23 typename Graph::Node n2=g.addNode();
25 InDegMap<Graph> ind(g);
29 typename Graph::Snapshot snap(g);
31 OutDegMap<Graph> outd(g);
33 check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value.");
34 check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value.");
39 check(ind[n1]==1 && ind[n2]==2, "Wrong InDegMap value.");
40 check(outd[n1]==2 && outd[n2]==1, "Wrong OutDegMap value.");
44 check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value.");
45 check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value.");
51 { // checking list graph
52 checkGraphCounters<ListGraph>();
53 checkFindEdge<ListGraph>();
55 { // checking smart graph
56 checkGraphCounters<SmartGraph>();
57 checkFindEdge<SmartGraph>();
62 check(countNodes(fg) == num, "FullGraph: wrong node number.");
63 check(countEdges(fg) == num*num, "FullGraph: wrong edge number.");
64 for (FullGraph::NodeIt src(fg); src != INVALID; ++src) {
65 for (FullGraph::NodeIt trg(fg); trg != INVALID; ++trg) {
66 ConEdgeIt<FullGraph> con(fg, src, trg);
67 check(con != INVALID, "There is no connecting edge.");
68 check(fg.source(con) == src, "Wrong source.");
69 check(fg.target(con) == trg, "Wrong target.");
70 check(++con == INVALID, "There is more connecting edge.");
75 //check In/OutDegMap (and Snapshot feature)
77 checkSnapDeg<ListGraph>();
78 checkSnapDeg<SmartGraph>();
81 const int nodeNum = 10;
82 const int edgeNum = 100;
84 InDegMap<ListGraph> inDeg(graph);
85 OutDegMap<ListGraph> outDeg(graph);
86 std::vector<ListGraph::Node> nodes(nodeNum);
87 for (int i = 0; i < nodeNum; ++i) {
88 nodes[i] = graph.addNode();
90 std::vector<ListGraph::Edge> edges(edgeNum);
91 for (int i = 0; i < edgeNum; ++i) {
93 graph.addEdge(nodes[urandom(nodeNum)], nodes[urandom(nodeNum)]);
95 for (int i = 0; i < nodeNum; ++i) {
96 check(inDeg[nodes[i]] == countInEdges(graph, nodes[i]),
97 "Wrong in degree map");
99 for (int i = 0; i < nodeNum; ++i) {
100 check(outDeg[nodes[i]] == countOutEdges(graph, nodes[i]),
101 "Wrong in degree map");
106 std::cout << __FILE__ ": All tests passed.\n";