COIN-OR::LEMON - Graph Library

source: lemon-0.x/test/graph_utils_test.cc @ 1568:f694f75de683

Last change on this file since 1568:f694f75de683 was 1568:f694f75de683, checked in by Balazs Dezso, 14 years ago

Improving tests.

File size: 1.9 KB
Line 
1// -*- c++ -*-
2
3#include <iostream>
4#include <vector>
5
6#include <lemon/graph_utils.h>
7
8#include <lemon/list_graph.h>
9#include <lemon/smart_graph.h>
10#include <lemon/full_graph.h>
11
12#include "test_tools.h"
13#include "graph_utils_test.h"
14
15
16using namespace lemon;
17
18template<class Graph>
19void checkSnapDeg()
20{
21  Graph g;
22  typename Graph::Node n1=g.addNode();
23  typename Graph::Node n2=g.addNode();
24   
25  InDegMap<Graph> ind(g);
26 
27  g.addEdge(n1,n2);
28 
29  typename Graph::SnapShot snap(g);
30 
31  OutDegMap<Graph> outd(g);
32 
33  check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value.");
34  check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value.");
35
36  g.addEdge(n1,n2);
37  g.addEdge(n2,n1);
38 
39  check(ind[n1]==1 && ind[n2]==2, "Wrong InDegMap value.");
40  check(outd[n1]==2 && outd[n2]==1, "Wrong OutDegMap value.");
41
42  snap.restore();
43
44  check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value.");
45  check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value.");
46 
47}
48
49int main() {
50  ///\file
51  { // checking list graph
52    checkGraphCounters<ListGraph>();
53    checkFindEdge<ListGraph>();
54  }
55  { // checking smart graph
56    checkGraphCounters<SmartGraph>();
57    checkFindEdge<SmartGraph>();
58  }
59  {
60    int num = 5;
61    FullGraph fg(num);
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.");
71      }
72    }
73  }
74
75  //check In/OutDegMap (and SnapShot feature)
76
77  checkSnapDeg<ListGraph>();
78  checkSnapDeg<SmartGraph>();
79 
80
81  ///Everything is OK
82  std::cout << __FILE__ ": All tests passed.\n";
83
84  return 0;
85}
Note: See TracBrowser for help on using the repository browser.