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 #include <lemon/hypercube_graph.h>
12 #include "test_tools.h"
13 #include "graph_test.h"
17 using namespace lemon;
18 using namespace lemon::concept;
22 { // checking graph components
23 checkConcept<BaseGraphComponent, BaseGraphComponent >();
25 checkConcept<BaseIterableGraphComponent, BaseIterableGraphComponent >();
27 checkConcept<IDableGraphComponent, IDableGraphComponent >();
28 checkConcept<MaxIDableGraphComponent, MaxIDableGraphComponent >();
30 checkConcept<BaseExtendableGraphComponent, BaseExtendableGraphComponent >();
31 checkConcept<BaseErasableGraphComponent, BaseErasableGraphComponent >();
33 checkConcept<IterableGraphComponent, IterableGraphComponent >();
35 checkConcept<MappableGraphComponent, MappableGraphComponent >();
37 checkConcept<ExtendableGraphComponent, ExtendableGraphComponent >();
38 checkConcept<ErasableGraphComponent, ErasableGraphComponent >();
39 checkConcept<ClearableGraphComponent, ClearableGraphComponent >();
41 { // checking skeleton graphs
42 checkConcept<StaticGraph, StaticGraph >();
43 checkConcept<ExtendableGraph, ExtendableGraph >();
44 checkConcept<ErasableGraph, ErasableGraph >();
46 { // checking list graph
47 checkConcept<ErasableGraph, ListGraph >();
49 checkGraph<ListGraph>();
50 checkGraphNodeMap<ListGraph>();
51 checkGraphEdgeMap<ListGraph>();
53 { // checking smart graph
54 checkConcept<ExtendableGraph, SmartGraph >();
56 checkGraph<SmartGraph>();
57 checkGraphNodeMap<SmartGraph>();
58 checkGraphEdgeMap<SmartGraph>();
60 { // checking full graph
61 checkConcept<StaticGraph, FullGraph >();
63 { // checking full graph
64 checkConcept<StaticGraph, HyperCubeGraph >();
67 std::cout << __FILE__ ": All tests passed.\n";