COIN-OR::LEMON - Graph Library

source: lemon-0.x/src/test/sym_graph_test.cc @ 909:6a22e0dfd453

Last change on this file since 909:6a22e0dfd453 was 909:6a22e0dfd453, checked in by Balazs Dezso, 20 years ago

New symmetric Graph concept.
New symmetric list and smart graph.
Symmetric Graph tests based on the Graph Tests.

File size: 2.3 KB
Line 
1/* -*- C++ -*-
2 * src/test/sym_graph_test.cc - Part of HUGOlib, a generic C++ optimization library
3 *
4 * Copyright (C) 2004 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
5 * (Egervary Combinatorial Optimization Research Group, EGRES).
6 *
7 * Permission to use, modify and distribute this software is granted
8 * provided that this copyright notice appears in all copies. For
9 * precise terms see the accompanying LICENSE file.
10 *
11 * This software is provided "AS IS" with no warranty of any kind,
12 * express or implied, and with no claim as to its suitability for any
13 * purpose.
14 *
15 */
16
17#include<iostream>
18
19#include<hugo/skeletons/sym_graph.h>
20
21#include<hugo/list_graph.h>
22#include<hugo/smart_graph.h>
23#include<hugo/full_graph.h>
24
25#include"test_tools.h"
26#include"graph_test.h"
27#include"sym_graph_test.h"
28
29/**
30\file
31This test makes consistency checks of list graph structures.
32
33G.addNode(), G.addEdge(), G.tail(), G.head()
34
35\todo Checks for empty graphs and isolated points.
36conversion.
37*/
38
39using namespace hugo;
40
41template<class Graph> void checkPetersen(Graph &G)
42{
43  typedef typename Graph::NodeIt NodeIt;
44
45
46  checkGraphNodeList(G,10);
47  checkGraphEdgeList(G,30);
48  checkGraphSymEdgeList(G,15);
49
50  for(NodeIt n(G);n!=INVALID;++n) {
51    checkGraphInEdgeList(G,n,3);
52    checkGraphOutEdgeList(G,n,3);
53  } 
54}
55
56//Compile Graph
57template void hugo::checkCompileStaticSymGraph<skeleton::StaticSymGraph>
58(skeleton::StaticSymGraph &);
59
60template void hugo::checkCompileSymGraph<skeleton::ExtendableSymGraph>
61(skeleton::ExtendableSymGraph &);
62
63template void hugo::checkCompileErasableSymGraph<skeleton::ErasableSymGraph>
64(skeleton::ErasableSymGraph &);
65
66
67//Compile SymSmartGraph
68template void hugo::checkCompileSymGraph<SymSmartGraph>(SymSmartGraph &);
69template void hugo::checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
70
71//Compile SymListGraph
72template void hugo::checkCompileSymGraph<SymListGraph>(SymListGraph &);
73template void hugo::checkCompileErasableSymGraph<SymListGraph>(SymListGraph &);
74template void hugo::checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
75
76int main()
77{
78  {
79    SymSmartGraph G;
80    addSymPetersen(G);
81    checkPetersen(G);
82  }
83  {
84    SymListGraph G;
85    addSymPetersen(G);
86    checkPetersen(G);
87  }
88
89  ///\file
90  ///\todo map tests.
91  ///\todo copy constr tests.
92
93  std::cout << __FILE__ ": All tests passed.\n";
94
95  return 0;
96}
Note: See TracBrowser for help on using the repository browser.