COIN-OR::LEMON - Graph Library

source: lemon-0.x/test/graph_utils_test.cc @ 1459:2ee881cf30a8

Last change on this file since 1459:2ee881cf30a8 was 1459:2ee881cf30a8, checked in by Alpar Juttner, 14 years ago
File size: 1.5 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  }
54  { // checking smart graph
55    checkGraphCounters<SmartGraph>();
56  }
57  {
58    int num = 5;
59    FullGraph fg(num);
60    check(countNodes(fg) == num, "FullGraph: wrong node number.");
61    check(countEdges(fg) == num*num, "FullGraph: wrong edge number.");   
62  }
63
64  //check In/OutDegMap (and SnapShot feature)
65
66  checkSnapDeg<ListGraph>();
67  checkSnapDeg<SmartGraph>();
68 
69
70  ///Everything is OK
71  std::cout << __FILE__ ": All tests passed.\n";
72
73  return 0;
74}
Note: See TracBrowser for help on using the repository browser.