src/test/sym_graph_test.cc
author deba
Tue, 28 Sep 2004 16:40:55 +0000
changeset 916 c0734a8c282c
permissions -rw-r--r--
Fix InEdgeIt and OutEdgeIt in the symmetric graphs.
     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
    31 This test makes consistency checks of list graph structures.
    32 
    33 G.addNode(), G.addEdge(), G.tail(), G.head()
    34 
    35 \todo Checks for empty graphs and isolated points.
    36 conversion.
    37 */
    38 
    39 using namespace hugo;
    40 
    41 template<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
    57 template void hugo::checkCompileStaticSymGraph<skeleton::StaticSymGraph>
    58 (skeleton::StaticSymGraph &);
    59 
    60 template void hugo::checkCompileSymGraph<skeleton::ExtendableSymGraph>
    61 (skeleton::ExtendableSymGraph &);
    62 
    63 template void hugo::checkCompileErasableSymGraph<skeleton::ErasableSymGraph>
    64 (skeleton::ErasableSymGraph &);
    65 
    66 
    67 //Compile SymSmartGraph
    68 template void hugo::checkCompileSymGraph<SymSmartGraph>(SymSmartGraph &);
    69 template void hugo::checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
    70 
    71 //Compile SymListGraph
    72 template void hugo::checkCompileSymGraph<SymListGraph>(SymListGraph &);
    73 template void hugo::checkCompileErasableSymGraph<SymListGraph>(SymListGraph &);
    74 template void hugo::checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
    75 
    76 int 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 }