deba@57: /* -*- C++ -*-
deba@57:  *
deba@57:  * This file is a part of LEMON, a generic C++ optimization library
deba@57:  *
alpar@107:  * Copyright (C) 2003-2008
deba@57:  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
deba@57:  * (Egervary Research Group on Combinatorial Optimization, EGRES).
deba@57:  *
deba@57:  * Permission to use, modify and distribute this software is granted
deba@57:  * provided that this copyright notice appears in all copies. For
deba@57:  * precise terms see the accompanying LICENSE file.
deba@57:  *
deba@57:  * This software is provided "AS IS" with no warranty of any kind,
deba@57:  * express or implied, and with no claim as to its suitability for any
deba@57:  * purpose.
deba@57:  *
deba@57:  */
deba@57: 
deba@57: #include <iostream>
deba@57: #include <vector>
deba@57: 
deba@57: #include <lemon/concepts/digraph.h>
deba@57: #include <lemon/list_graph.h>
deba@57: //#include <lemon/smart_graph.h>
deba@57: //#include <lemon/full_graph.h>
deba@57: //#include <lemon/hypercube_graph.h>
deba@57: 
deba@57: #include "test_tools.h"
deba@57: #include "digraph_test.h"
deba@57: #include "map_test.h"
deba@57: 
deba@57: 
deba@57: using namespace lemon;
deba@57: using namespace lemon::concepts;
deba@57: 
deba@57: 
deba@57: int main() {
deba@57:   { // checking digraph components
deba@57:     checkConcept<BaseDigraphComponent, BaseDigraphComponent >();
deba@57: 
deba@57:     checkConcept<IDableDigraphComponent<>, 
deba@57:       IDableDigraphComponent<> >();
deba@57: 
deba@57:     checkConcept<IterableDigraphComponent<>, 
deba@57:       IterableDigraphComponent<> >();
deba@57: 
deba@57:     checkConcept<MappableDigraphComponent<>, 
deba@57:       MappableDigraphComponent<> >();
deba@57: 
deba@57:   }
deba@57:   { // checking skeleton digraphs
deba@57:     checkConcept<Digraph, Digraph>();
deba@57:   }
deba@57:   { // checking list digraph
deba@57:     checkConcept<Digraph, ListDigraph >();
deba@57:     checkConcept<AlterableDigraphComponent<>, ListDigraph>();
deba@57:     checkConcept<ExtendableDigraphComponent<>, ListDigraph>();
deba@57:     checkConcept<ClearableDigraphComponent<>, ListDigraph>();
deba@57:     checkConcept<ErasableDigraphComponent<>, ListDigraph>();
deba@57: 
deba@57:     checkDigraph<ListDigraph>();
deba@57:     checkGraphNodeMap<ListDigraph>();
deba@57:     checkGraphArcMap<ListDigraph>();
deba@57:   }
deba@57: //   { // checking smart digraph
deba@57: //     checkConcept<Digraph, SmartDigraph >();
deba@57: 
deba@57: //     checkDigraph<SmartDigraph>();
deba@57: //     checkDigraphNodeMap<SmartDigraph>();
deba@57: //     checkDigraphArcMap<SmartDigraph>();
deba@57: //   }
deba@57: //   { // checking full digraph
deba@57: //     checkConcept<Digraph, FullDigraph >();
deba@57: //   }
deba@57: //   { // checking full digraph
deba@57: //     checkConcept<Digraph, HyperCubeDigraph >();
deba@57: //   }
deba@57: 
deba@57:   std::cout << __FILE__ ": All tests passed.\n";
deba@57: 
deba@57:   return 0;
deba@57: }