src/work/marci/graph_wrapper_test.cc
author alpar
Thu, 16 Sep 2004 19:24:15 +0000
changeset 874 2195bc090dfe
parent 870 9bde6cd8e3da
permissions -rw-r--r--
Document the file itself.
marci@849
     1
#include<iostream>
marci@849
     2
#include<hugo/smart_graph.h>
marci@849
     3
#include<hugo/skeletons/graph.h>
marci@849
     4
#include<hugo/list_graph.h>
marci@849
     5
#include<hugo/full_graph.h>
marci@849
     6
#include<hugo/graph_wrapper.h>
marci@849
     7
marci@870
     8
#include"test/test_tools.h"
marci@870
     9
#include"test/graph_test.h"
marci@849
    10
marci@849
    11
/**
marci@849
    12
\file
marci@849
    13
This test makes consistency checks of list graph structures.
marci@849
    14
marci@849
    15
G.addNode(), G.addEdge(), G.tail(), G.head()
marci@849
    16
marci@849
    17
\todo Checks for empty graphs and isolated points.
marci@849
    18
conversion.
marci@849
    19
*/
marci@849
    20
marci@849
    21
using namespace hugo;
marci@849
    22
marci@870
    23
// template<class Graph> void bidirPetersen(Graph &G)
marci@870
    24
// {
marci@870
    25
//   typedef typename Graph::Edge Edge;
marci@870
    26
//   typedef typename Graph::EdgeIt EdgeIt;
marci@849
    27
  
marci@870
    28
//   checkGraphEdgeList(G,15);
marci@849
    29
  
marci@870
    30
//   std::vector<Edge> ee;
marci@849
    31
  
marci@870
    32
//   for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
marci@849
    33
marci@870
    34
//   for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
marci@870
    35
//     G.addEdge(G.head(*p),G.tail(*p));
marci@870
    36
// }
marci@849
    37
marci@870
    38
// template<class Graph> void checkPetersen(Graph &G)
marci@870
    39
// {
marci@870
    40
//   typedef typename Graph::Node Node;
marci@849
    41
marci@870
    42
//   typedef typename Graph::EdgeIt EdgeIt;
marci@870
    43
//   typedef typename Graph::NodeIt NodeIt;
marci@849
    44
marci@870
    45
//   checkGraphNodeList(G,10);
marci@870
    46
//   checkGraphEdgeList(G,30);
marci@849
    47
marci@870
    48
//   for(NodeIt n(G);n!=INVALID;++n) {
marci@870
    49
//     checkGraphInEdgeList(G,n,3);
marci@870
    50
//     checkGraphOutEdgeList(G,n,3);
marci@870
    51
//     ++n;
marci@870
    52
//   }  
marci@870
    53
// }
marci@849
    54
marci@870
    55
// //Compile GraphSkeleton
marci@870
    56
// template void checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
marci@870
    57
// (skeleton::StaticGraphSkeleton &);
marci@849
    58
alpar@873
    59
// template void checkCompileGraph<skeleton::ExtendableGraphSkeleton>
alpar@873
    60
// (skeleton::ExtendableGraphSkeleton &);
marci@849
    61
marci@870
    62
// template void checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
marci@870
    63
// (skeleton::ErasableGraphSkeleton &);
marci@849
    64
marci@849
    65
//Compile SmartGraph
marci@849
    66
typedef SmartGraph Graph;
marci@849
    67
typedef GraphWrapper<Graph> GW;
marci@849
    68
template void checkCompileStaticGraph<GW>(GW &);
marci@849
    69
//template void checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
marci@849
    70
marci@849
    71
//Compile SymSmartGraph
marci@849
    72
typedef RevGraphWrapper<Graph> RevGW;
marci@849
    73
template void checkCompileStaticGraph<RevGW>(RevGW &);
marci@849
    74
//template void checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
marci@849
    75
marci@849
    76
// //Compile ListGraph
marci@849
    77
// template void checkCompileGraph<ListGraph>(ListGraph &);
marci@849
    78
// template void checkCompileErasableGraph<ListGraph>(ListGraph &);
marci@849
    79
// template void checkCompileGraphFindEdge<ListGraph>(ListGraph &);
marci@849
    80
marci@849
    81
marci@849
    82
// //Compile SymListGraph
marci@849
    83
// template void checkCompileGraph<SymListGraph>(SymListGraph &);
marci@849
    84
// template void checkCompileErasableGraph<SymListGraph>(SymListGraph &);
marci@849
    85
// template void checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
marci@849
    86
marci@849
    87
// //Compile FullGraph
marci@849
    88
// template void checkCompileStaticGraph<FullGraph>(FullGraph &);
marci@849
    89
// template void checkCompileGraphFindEdge<FullGraph>(FullGraph &);
marci@849
    90
marci@849
    91
// //Compile EdgeSet <ListGraph>
marci@849
    92
// template void checkCompileGraph<EdgeSet <ListGraph> >(EdgeSet <ListGraph> &);
marci@849
    93
// template void checkCompileGraphEraseEdge<EdgeSet <ListGraph> >
marci@849
    94
// (EdgeSet <ListGraph> &);
marci@849
    95
// template void checkCompileGraphFindEdge<EdgeSet <ListGraph> >
marci@849
    96
// (EdgeSet <ListGraph> &);
marci@849
    97
marci@849
    98
// //Compile EdgeSet <NodeSet>
marci@849
    99
// template void checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &);
marci@849
   100
// template void checkCompileGraphEraseEdge<EdgeSet <NodeSet> >
marci@849
   101
// (EdgeSet <NodeSet> &);
marci@849
   102
// template void checkCompileGraphFindEdge<EdgeSet <NodeSet> >
marci@849
   103
// (EdgeSet <NodeSet> &);
marci@849
   104
marci@849
   105
marci@849
   106
int main() 
marci@849
   107
{
marci@849
   108
 //  {
marci@849
   109
//     SmartGraph G;
marci@849
   110
//     addPetersen(G);
marci@849
   111
//     bidirPetersen(G);
marci@849
   112
//     checkPetersen(G);
marci@849
   113
//   }
marci@849
   114
//   {
marci@849
   115
//     ListGraph G;
marci@849
   116
//     addPetersen(G);
marci@849
   117
//     bidirPetersen(G);
marci@849
   118
//     checkPetersen(G);
marci@849
   119
//   }
marci@849
   120
//   {
marci@849
   121
//     SymSmartGraph G;
marci@849
   122
//     addPetersen(G);
marci@849
   123
//     checkPetersen(G);
marci@849
   124
//   }
marci@849
   125
//   {
marci@849
   126
//     SymListGraph G;
marci@849
   127
//     addPetersen(G);
marci@849
   128
//     checkPetersen(G);
marci@849
   129
//   }
marci@849
   130
marci@849
   131
  ///\file
marci@849
   132
  ///\todo map tests.
marci@849
   133
  ///\todo copy constr tests.
marci@849
   134
marci@849
   135
  std::cout << __FILE__ ": All tests passed.\n";
marci@849
   136
marci@849
   137
  return 0;
marci@849
   138
}