src/test/graph_test.cc
author klao
Fri, 05 Nov 2004 00:31:49 +0000
changeset 962 1a770e9f80b2
parent 946 c94ef40a22ce
child 980 0f1044b7a3af
permissions -rw-r--r--
Undirect graph implementation.
Not yet done, untested.
     1 // -*- c++ -*-
     2 
     3 #include <iostream>
     4 #include <vector>
     5 
     6 #include <lemon/concept/graph.h>
     7 #include <lemon/list_graph.h>
     8 #include <lemon/smart_graph.h>
     9 #include <lemon/full_graph.h>
    10 
    11 #include "test_tools.h"
    12 #include "graph_test.h"
    13 #include "map_test.h"
    14 
    15 
    16 using namespace lemon;
    17 using namespace lemon::concept;
    18 
    19 
    20 int main() {
    21   ///\file
    22   { // checking graph components
    23     function_requires<BaseGraphComponentConcept<BaseGraphComponent> >();
    24 
    25     function_requires<BaseIterableGraphComponentConcept<BaseIterableGraphComponent> >();
    26 
    27     function_requires<IDableGraphComponentConcept<IDableGraphComponent> >();
    28     function_requires<MaxIDableGraphComponentConcept<MaxIDableGraphComponent> >();
    29 
    30     function_requires<BaseExtendableGraphComponentConcept<BaseExtendableGraphComponent> >();
    31     function_requires<BaseErasableGraphComponentConcept<BaseErasableGraphComponent> >();
    32     function_requires<BaseClearableGraphComponentConcept<BaseClearableGraphComponent> >();
    33 
    34     function_requires<IterableGraphComponentConcept<IterableGraphComponent> >();
    35 
    36     function_requires<IdMappableGraphComponentConcept<IdMappableGraphComponent> >();
    37     function_requires<MappableGraphComponentConcept<MappableGraphComponent> >();
    38 
    39     function_requires<ExtendableGraphComponentConcept<ExtendableGraphComponent> >();
    40     function_requires<ErasableGraphComponentConcept<ErasableGraphComponent> >();
    41     function_requires<ClearableGraphComponentConcept<ClearableGraphComponent> >();
    42   }
    43   { // checking skeleton graphs
    44     function_requires<StaticGraphConcept<StaticGraph> >();
    45     function_requires<ExtendableGraphConcept<ExtendableGraph> >();
    46     function_requires<ErasableGraphConcept<ErasableGraph> >();
    47   }
    48   { // checking list graph
    49     function_requires<ErasableGraphConcept<ListGraph> >();
    50 
    51     checkGraph<ListGraph>();
    52     checkGraphNodeMap<ListGraph>();
    53     checkGraphEdgeMap<ListGraph>();
    54   }
    55   { // checking smart graph
    56     function_requires<ExtendableGraphConcept<SmartGraph> >();
    57 
    58     checkGraph<SmartGraph>();
    59     checkGraphNodeMap<SmartGraph>();
    60     checkGraphEdgeMap<SmartGraph>();
    61   }
    62   { // checking full graph
    63     function_requires<StaticGraphConcept<FullGraph> >();
    64   }
    65 
    66   std::cout << __FILE__ ": All tests passed.\n";
    67 
    68   return 0;
    69 }