test/graph_utils_test.cc
author alpar
Thu, 09 Jun 2005 16:23:16 +0000
changeset 1465 60c2961c75ca
parent 1435 8e85e6bbefdf
child 1568 f694f75de683
permissions -rw-r--r--
Akos' research pointed out that it is a must.
     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 
    16 using namespace lemon;
    17 
    18 template<class Graph>
    19 void 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 
    49 int 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 }