6 #include <lemon/concept/graph.h>
7 #include <lemon/list_graph.h>
8 #include <lemon/smart_graph.h>
9 #include <lemon/full_graph.h>
11 #include "test_tools.h"
12 #include "graph_test.h"
16 using namespace lemon;
17 using namespace lemon::concept;
22 { // checking graph components
23 function_requires<BaseGraphComponentConcept<BaseGraphComponent> >();
25 function_requires<BaseIterableGraphComponentConcept<BaseIterableGraphComponent> >();
27 function_requires<IDableGraphComponentConcept<IDableGraphComponent> >();
28 function_requires<MaxIDableGraphComponentConcept<MaxIDableGraphComponent> >();
30 function_requires<BaseExtendableGraphComponentConcept<BaseExtendableGraphComponent> >();
31 function_requires<BaseErasableGraphComponentConcept<BaseErasableGraphComponent> >();
32 function_requires<BaseClearableGraphComponentConcept<BaseClearableGraphComponent> >();
34 function_requires<IterableGraphComponentConcept<IterableGraphComponent> >();
36 function_requires<MappableGraphComponentConcept<MappableGraphComponent> >();
38 function_requires<ExtendableGraphComponentConcept<ExtendableGraphComponent> >();
39 function_requires<ErasableGraphComponentConcept<ErasableGraphComponent> >();
40 function_requires<ClearableGraphComponentConcept<ClearableGraphComponent> >();
42 { // checking skeleton graphs
43 function_requires<StaticGraphConcept<StaticGraph> >();
44 function_requires<ExtendableGraphConcept<ExtendableGraph> >();
45 function_requires<ErasableGraphConcept<ErasableGraph> >();
47 { // checking list graph
48 function_requires<ErasableGraphConcept<ListGraph> >();
50 checkGraph<ListGraph>();
51 checkGraphNodeMap<ListGraph>();
52 checkGraphEdgeMap<ListGraph>();
54 { // checking smart graph
55 function_requires<ExtendableGraphConcept<SmartGraph> >();
57 checkGraph<SmartGraph>();
58 checkGraphNodeMap<SmartGraph>();
59 checkGraphEdgeMap<SmartGraph>();
61 { // checking full graph
62 function_requires<StaticGraphConcept<FullGraph> >();
65 std::cout << __FILE__ ": All tests passed.\n";