src/test/test_tools.h
changeset 946 c94ef40a22ce
parent 937 d4e911acef3d
child 978 175cf8c3a994
     1.1 --- a/src/test/test_tools.h	Mon Oct 25 13:29:46 2004 +0000
     1.2 +++ b/src/test/test_tools.h	Wed Oct 27 22:38:50 2004 +0000
     1.3 @@ -70,7 +70,7 @@
     1.4  ///\return The nodes and edges of the generated graph.
     1.5  
     1.6  template<typename Graph>
     1.7 -PetStruct<Graph> addPetersen(Graph &G,int num=5)
     1.8 +PetStruct<Graph> addPetersen(Graph &G,int num = 5)
     1.9  {
    1.10    PetStruct<Graph> n;
    1.11  
    1.12 @@ -81,12 +81,50 @@
    1.13  
    1.14   for(int i=0;i<num;i++) {
    1.15     n.chords.push_back(G.addEdge(n.outer[i],n.inner[i]));
    1.16 -   n.outcir.push_back(G.addEdge(n.outer[i],n.outer[(i+1)%5]));
    1.17 -   n.incir.push_back(G.addEdge(n.inner[i],n.inner[(i+2)%5]));
    1.18 +   n.outcir.push_back(G.addEdge(n.outer[i],n.outer[(i+1) % num]));
    1.19 +   n.incir.push_back(G.addEdge(n.inner[i],n.inner[(i+2) % num]));
    1.20    }
    1.21   return n;
    1.22  }
    1.23  
    1.24 +/// \brief Adds to the graph the reverse pair of all edge.
    1.25 +///
    1.26 +/// Adds to the graph the reverse pair of all edge.
    1.27 +///
    1.28 +template<class Graph> void bidirGraph(Graph &G)
    1.29 +{
    1.30 +  typedef typename Graph::Edge Edge;
    1.31 +  typedef typename Graph::EdgeIt EdgeIt;
    1.32 +  
    1.33 +  std::vector<Edge> ee;
    1.34 +  
    1.35 +  for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
    1.36 +
    1.37 +  for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
    1.38 +    G.addEdge(G.head(*p),G.tail(*p));
    1.39 +}
    1.40 +
    1.41 +
    1.42 +/// \brief Checks the bidirectioned Petersen graph.
    1.43 +///
    1.44 +///  Checks the bidirectioned Petersen graph.
    1.45 +///
    1.46 +template<class Graph> void checkBidirPetersen(Graph &G, int num = 5)
    1.47 +{
    1.48 +  typedef typename Graph::Node Node;
    1.49 +
    1.50 +  typedef typename Graph::EdgeIt EdgeIt;
    1.51 +  typedef typename Graph::NodeIt NodeIt;
    1.52 +
    1.53 +  checkGraphNodeList(G, 2 * num);
    1.54 +  checkGraphEdgeList(G, 6 * num);
    1.55 +
    1.56 +  for(NodeIt n(G);n!=INVALID;++n) {
    1.57 +    checkGraphInEdgeList(G, n, 3);
    1.58 +    checkGraphOutEdgeList(G, n, 3);
    1.59 +  }  
    1.60 +}
    1.61 +
    1.62  ///Structure returned by \ref addSymPetersen().
    1.63  
    1.64  ///Structure returned by \ref addSymPetersen().