1.1 --- a/src/test/graph_factory_test.cc Sat May 21 21:04:57 2005 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,154 +0,0 @@
1.4 -/* -*- C++ -*-
1.5 - * src/test/graph_test.cc - Part of LEMON, a generic C++ optimization library
1.6 - *
1.7 - * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
1.8 - * (Egervary Research Group on Combinatorial Optimization, EGRES).
1.9 - *
1.10 - * Permission to use, modify and distribute this software is granted
1.11 - * provided that this copyright notice appears in all copies. For
1.12 - * precise terms see the accompanying LICENSE file.
1.13 - *
1.14 - * This software is provided "AS IS" with no warranty of any kind,
1.15 - * express or implied, and with no claim as to its suitability for any
1.16 - * purpose.
1.17 - *
1.18 - */
1.19 -
1.20 -#include<iostream>
1.21 -#include<lemon/smart_graph.h>
1.22 -#include<lemon/concept/graph.h>
1.23 -#include<lemon/concept/maps.h>
1.24 -#include<lemon/list_graph_base.h>
1.25 -#include<lemon/full_graph.h>
1.26 -
1.27 -#include"test_tools.h"
1.28 -#include"graph_test.h"
1.29 -
1.30 -/**
1.31 -\file
1.32 -This test makes consistency checks of list graph structures.
1.33 -
1.34 -G.addNode(), G.addEdge(), G.source(), G.target()
1.35 -
1.36 -\todo Checks for empty graphs and isolated points.
1.37 -conversion.
1.38 -*/
1.39 -
1.40 -using namespace lemon;
1.41 -
1.42 -template<class Graph> void bidirPetersen(Graph &G)
1.43 -{
1.44 - typedef typename Graph::Edge Edge;
1.45 - typedef typename Graph::EdgeIt EdgeIt;
1.46 -
1.47 - checkGraphEdgeList(G,15);
1.48 -
1.49 - std::vector<Edge> ee;
1.50 -
1.51 - for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
1.52 -
1.53 - for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
1.54 - G.addEdge(G.target(*p),G.source(*p));
1.55 -}
1.56 -
1.57 -template<class Graph> void checkPetersen(Graph &G)
1.58 -{
1.59 - typedef typename Graph::Node Node;
1.60 -
1.61 - typedef typename Graph::EdgeIt EdgeIt;
1.62 - typedef typename Graph::NodeIt NodeIt;
1.63 -
1.64 - checkGraphNodeList(G,10);
1.65 - checkGraphEdgeList(G,30);
1.66 -
1.67 - for(NodeIt n(G);n!=INVALID;++n) {
1.68 - checkGraphInEdgeList(G,n,3);
1.69 - checkGraphOutEdgeList(G,n,3);
1.70 - }
1.71 -}
1.72 -
1.73 -//Compile Graph
1.74 -template void lemon::concept::checkCompileStaticGraph<concept::StaticGraph>
1.75 -(concept::StaticGraph &);
1.76 -
1.77 -template
1.78 -void lemon::concept::checkCompileExtendableGraph<concept::ExtendableGraph>
1.79 -(concept::ExtendableGraph &);
1.80 -
1.81 -template
1.82 -void lemon::concept::checkCompileErasableGraph<concept::ErasableGraph>
1.83 -(concept::ErasableGraph &);
1.84 -
1.85 -//Compile SmartGraph
1.86 -template
1.87 -void lemon::concept::checkCompileExtendableGraph<SmartGraph>(SmartGraph &);
1.88 -template
1.89 -void lemon::concept::checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
1.90 -
1.91 -//Compile SymSmartGraph
1.92 -//template void hugo::checkCompileGraph<SymSmartGraph>(SymSmartGraph &);
1.93 -//template void hugo::checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
1.94 -
1.95 -//Compile ListGraph
1.96 -template
1.97 -void lemon::concept::checkCompileExtendableGraph<ListGraph>(ListGraph &);
1.98 -template
1.99 -void lemon::concept::checkCompileErasableGraph<ListGraph>(ListGraph &);
1.100 -template
1.101 -void lemon::concept::checkCompileGraphFindEdge<ListGraph>(ListGraph &);
1.102 -
1.103 -
1.104 -//Compile SymListGraph
1.105 -//template void hugo::checkCompileGraph<SymListGraph>(SymListGraph &);
1.106 -//template void hugo::checkCompileErasableGraph<SymListGraph>(SymListGraph &);
1.107 -//template void hugo::checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
1.108 -
1.109 -//Compile FullGraph
1.110 -template void lemon::concept::checkCompileStaticGraph<FullGraph>(FullGraph &);
1.111 -template
1.112 -void lemon::concept::checkCompileGraphFindEdge<FullGraph>(FullGraph &);
1.113 -
1.114 -
1.115 -int main()
1.116 -{
1.117 - {
1.118 - SmartGraph G;
1.119 - addPetersen(G);
1.120 - bidirPetersen(G);
1.121 - checkPetersen(G);
1.122 - }
1.123 - {
1.124 - ListGraph G;
1.125 - addPetersen(G);
1.126 - bidirPetersen(G);
1.127 - checkPetersen(G);
1.128 - }
1.129 - {
1.130 - // SymSmartGraph G;
1.131 - // addPetersen(G);
1.132 - // checkPetersen(G);
1.133 - }
1.134 - {
1.135 - // SymListGraph G;
1.136 - // addPetersen(G);
1.137 - // checkPetersen(G);
1.138 - }
1.139 -
1.140 - ///\file
1.141 - ///\todo map tests.
1.142 - ///\todo copy constr tests.
1.143 -
1.144 -
1.145 - // Some map tests.
1.146 - // FIXME: These shouldn't be here.
1.147 - using namespace concept;
1.148 - function_requires< ReadMapConcept< ReadMap<int,int> > >();
1.149 - function_requires< WriteMapConcept< WriteMap<int,int> > >();
1.150 - function_requires< ReadWriteMapConcept< ReadWriteMap<int,int> > >();
1.151 - function_requires< ReferenceMapConcept< ReferenceMap<int,int> > >();
1.152 -
1.153 -
1.154 - std::cout << __FILE__ ": All tests passed.\n";
1.155 -
1.156 - return 0;
1.157 -}