COIN-OR::LEMON - Graph Library

Changes in / [101:70f3967ca6eb:95:cc7e6b8b59bf] in lemon-main


Ignore:
Files:
14 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • lemon/Makefile.am

    r101 r89  
    1818lemon_HEADERS += \
    1919        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 \
    2421        lemon/dim2.h \
    2522        lemon/error.h \
    26         lemon/graph_utils.h \
    2723        lemon/list_graph.h \
    2824        lemon/maps.h \
    2925        lemon/math.h \
    30         lemon/path.h \
    3126        lemon/random.h \
    3227        lemon/tolerance.h
     
    4035        lemon/bits/invalid.h \
    4136        lemon/bits/map_extender.h \
    42         lemon/bits/path_dump.h \
    4337        lemon/bits/traits.h \
    4438        lemon/bits/utility.h \
     
    4943        lemon/concepts/digraph.h \
    5044        lemon/concepts/graph.h \
    51         lemon/concepts/heap.h \
    5245        lemon/concepts/maps.h \
    53         lemon/concepts/path.h \
    5446        lemon/concepts/graph_components.h
  • test/Makefile.am

    r100 r67  
    44noinst_HEADERS += \
    55        test/digraph_test.h \
    6         test/heap_test.h \
    76        test/map_test.h \
    87        test/test_tools.h
    98
    109check_PROGRAMS += \
    11         test/bfs_test \
    12         test/dfs_test \
    1310        test/digraph_test \
    1411        test/dim_test \
     
    1613        test/maps_test \
    1714        test/random_test \
    18         test/path_test \
    1915        test/test_tools_fail \
    2016        test/test_tools_pass
     
    2319XFAIL_TESTS += test/test_tools_fail$(EXEEXT)
    2420
    25 test_bfs_test_SOURCES = test/bfs_test.cc
    26 test_dfs_test_SOURCES = test/dfs_test.cc
    2721test_digraph_test_SOURCES = test/digraph_test.cc
    2822test_dim_test_SOURCES = test/dim_test.cc
    2923#test_error_test_SOURCES = test/error_test.cc
    3024test_graph_test_SOURCES = test/graph_test.cc
    31 # test_heap_test_SOURCES = test/heap_test.cc
    3225test_maps_test_SOURCES = test/maps_test.cc
    33 test_path_test_SOURCES = test/path_test.cc
    3426test_random_test_SOURCES = test/random_test.cc
    3527test_test_tools_fail_SOURCES = test/test_tools_fail.cc
  • test/test_tools.h

    r100 r39  
    2121
    2222#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;
    3423
    3524//! \ingroup misc
     
    4837///\code check(0==1,"This is obviously false.");\endcode will
    4938///print this (and then exits).
    50 ///\verbatim digraph_test.cc:123: error: This is obviously false. \endverbatim
     39///\verbatim graph_test.cc:123: error: This is obviously false. \endverbatim
    5140///
    5241///\todo It should be in \c error.h
     
    5746  } else { } \
    5847
    59 ///Structure returned by \ref addPetersen().
    60 
    61 ///Structure returned by \ref addPetersen().
    62 ///
    63 template<class Digraph> struct PetStruct
    64 {
    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 UPetStruct
    145 {
    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 
    18148#endif
Note: See TracChangeset for help on using the changeset viewer.