Changes in / [101:70f3967ca6eb:95:cc7e6b8b59bf] in lemon-main
- Files:
-
- 14 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/Makefile.am
r101 r89 18 18 lemon_HEADERS += \ 19 19 lemon/arg_parser.h \ 20 lemon/bfs.h \ 21 lemon/bin_heap.h \ 22 lemon/dfs.h \ 23 lemon/dijkstra.h \ 20 lemon/concept_check.h \ 24 21 lemon/dim2.h \ 25 22 lemon/error.h \ 26 lemon/graph_utils.h \27 23 lemon/list_graph.h \ 28 24 lemon/maps.h \ 29 25 lemon/math.h \ 30 lemon/path.h \31 26 lemon/random.h \ 32 27 lemon/tolerance.h … … 40 35 lemon/bits/invalid.h \ 41 36 lemon/bits/map_extender.h \ 42 lemon/bits/path_dump.h \43 37 lemon/bits/traits.h \ 44 38 lemon/bits/utility.h \ … … 49 43 lemon/concepts/digraph.h \ 50 44 lemon/concepts/graph.h \ 51 lemon/concepts/heap.h \52 45 lemon/concepts/maps.h \ 53 lemon/concepts/path.h \54 46 lemon/concepts/graph_components.h -
test/Makefile.am
r100 r67 4 4 noinst_HEADERS += \ 5 5 test/digraph_test.h \ 6 test/heap_test.h \7 6 test/map_test.h \ 8 7 test/test_tools.h 9 8 10 9 check_PROGRAMS += \ 11 test/bfs_test \12 test/dfs_test \13 10 test/digraph_test \ 14 11 test/dim_test \ … … 16 13 test/maps_test \ 17 14 test/random_test \ 18 test/path_test \19 15 test/test_tools_fail \ 20 16 test/test_tools_pass … … 23 19 XFAIL_TESTS += test/test_tools_fail$(EXEEXT) 24 20 25 test_bfs_test_SOURCES = test/bfs_test.cc26 test_dfs_test_SOURCES = test/dfs_test.cc27 21 test_digraph_test_SOURCES = test/digraph_test.cc 28 22 test_dim_test_SOURCES = test/dim_test.cc 29 23 #test_error_test_SOURCES = test/error_test.cc 30 24 test_graph_test_SOURCES = test/graph_test.cc 31 # test_heap_test_SOURCES = test/heap_test.cc32 25 test_maps_test_SOURCES = test/maps_test.cc 33 test_path_test_SOURCES = test/path_test.cc34 26 test_random_test_SOURCES = test/random_test.cc 35 27 test_test_tools_fail_SOURCES = test/test_tools_fail.cc -
test/test_tools.h
r100 r39 21 21 22 22 #include <iostream> 23 #include <vector>24 25 #include <cstdlib>26 #include <ctime>27 28 #include <lemon/concept_check.h>29 #include <lemon/concepts/digraph.h>30 31 #include <lemon/random.h>32 33 using namespace lemon;34 23 35 24 //! \ingroup misc … … 48 37 ///\code check(0==1,"This is obviously false.");\endcode will 49 38 ///print this (and then exits). 50 ///\verbatim digraph_test.cc:123: error: This is obviously false. \endverbatim39 ///\verbatim graph_test.cc:123: error: This is obviously false. \endverbatim 51 40 /// 52 41 ///\todo It should be in \c error.h … … 57 46 } else { } \ 58 47 59 ///Structure returned by \ref addPetersen().60 61 ///Structure returned by \ref addPetersen().62 ///63 template<class Digraph> struct PetStruct64 {65 ///Vector containing the outer nodes.66 std::vector<typename Digraph::Node> outer;67 ///Vector containing the inner nodes.68 std::vector<typename Digraph::Node> inner;69 ///Vector containing the arcs of the inner circle.70 std::vector<typename Digraph::Arc> incir;71 ///Vector containing the arcs of the outer circle.72 std::vector<typename Digraph::Arc> outcir;73 ///Vector containing the chord arcs.74 std::vector<typename Digraph::Arc> chords;75 };76 77 78 79 ///Adds a Petersen digraph to \c G.80 81 ///Adds a Petersen digraph to \c G.82 ///\return The nodes and arcs of the generated digraph.83 84 template<typename Digraph>85 PetStruct<Digraph> addPetersen(Digraph &G,int num = 5)86 {87 PetStruct<Digraph> n;88 89 for(int i=0;i<num;i++) {90 n.outer.push_back(G.addNode());91 n.inner.push_back(G.addNode());92 }93 94 for(int i=0;i<num;i++) {95 n.chords.push_back(G.addArc(n.outer[i],n.inner[i]));96 n.outcir.push_back(G.addArc(n.outer[i],n.outer[(i+1) % num]));97 n.incir.push_back(G.addArc(n.inner[i],n.inner[(i+2) % num]));98 }99 return n;100 }101 102 /// \brief Adds to the digraph the reverse pair of all arcs.103 ///104 /// Adds to the digraph the reverse pair of all arcs.105 ///106 template<class Digraph> void bidirDigraph(Digraph &G)107 {108 typedef typename Digraph::Arc Arc;109 typedef typename Digraph::ArcIt ArcIt;110 111 std::vector<Arc> ee;112 113 for(ArcIt e(G);e!=INVALID;++e) ee.push_back(e);114 115 for(typename std::vector<Arc>::iterator p=ee.begin();p!=ee.end();p++)116 G.addArc(G.target(*p),G.source(*p));117 }118 119 120 /// \brief Checks the bidirectioned Petersen digraph.121 ///122 /// Checks the bidirectioned Petersen digraph.123 ///124 template<class Digraph> void checkBidirPetersen(Digraph &G, int num = 5)125 {126 typedef typename Digraph::Node Node;127 128 typedef typename Digraph::ArcIt ArcIt;129 typedef typename Digraph::NodeIt NodeIt;130 131 checkDigraphNodeList(G, 2 * num);132 checkDigraphArcList(G, 6 * num);133 134 for(NodeIt n(G);n!=INVALID;++n) {135 checkDigraphInArcList(G, n, 3);136 checkDigraphOutArcList(G, n, 3);137 }138 }139 140 ///Structure returned by \ref addUPetersen().141 142 ///Structure returned by \ref addUPetersen().143 ///144 template<class Digraph> struct UPetStruct145 {146 ///Vector containing the outer nodes.147 std::vector<typename Digraph::Node> outer;148 ///Vector containing the inner nodes.149 std::vector<typename Digraph::Node> inner;150 ///Vector containing the arcs of the inner circle.151 std::vector<typename Digraph::Edge> incir;152 ///Vector containing the arcs of the outer circle.153 std::vector<typename Digraph::Edge> outcir;154 ///Vector containing the chord arcs.155 std::vector<typename Digraph::Edge> chords;156 };157 158 ///Adds a Petersen digraph to the undirected \c G.159 160 ///Adds a Petersen digraph to the undirected \c G.161 ///\return The nodes and arcs of the generated digraph.162 163 template<typename Digraph>164 UPetStruct<Digraph> addUPetersen(Digraph &G,int num=5)165 {166 UPetStruct<Digraph> n;167 168 for(int i=0;i<num;i++) {169 n.outer.push_back(G.addNode());170 n.inner.push_back(G.addNode());171 }172 173 for(int i=0;i<num;i++) {174 n.chords.push_back(G.addArc(n.outer[i],n.inner[i]));175 n.outcir.push_back(G.addArc(n.outer[i],n.outer[(i+1)%5]));176 n.incir.push_back(G.addArc(n.inner[i],n.inner[(i+2)%5]));177 }178 return n;179 }180 181 48 #endif
Note: See TracChangeset
for help on using the changeset viewer.