diff -r d8475431bbbb -r 8e85e6bbefdf src/test/test_tools.h --- a/src/test/test_tools.h Sat May 21 21:04:57 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -*- C++ -*- - * src/test/test_tools.h - Part of LEMON, a generic C++ optimization library - * - * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport - * (Egervary Research Group on Combinatorial Optimization, EGRES). - * - * Permission to use, modify and distribute this software is granted - * provided that this copyright notice appears in all copies. For - * precise terms see the accompanying LICENSE file. - * - * This software is provided "AS IS" with no warranty of any kind, - * express or implied, and with no claim as to its suitability for any - * purpose. - * - */ - -#ifndef LEMON_TEST_TEST_TOOLS_H -#define LEMON_TEST_TEST_TOOLS_H - -#include -#include - -#include - -using namespace lemon; - -//! \ingroup misc -//! \file -//! \brief Some utilities to write test programs. - - -///If \c rc is fail, writes an error message end exit. - -///If \c rc is fail, writes an error message end exit. -///The error message contains the file name and the line number of the -///source code in a standard from, which makes it possible to go there -///using good source browsers like e.g. \c emacs. -/// -///For example -///\code check(0==1,"This is obviously false.");\endcode will -///print this (and then exits). -///\verbatim graph_test.cc:123: error: This is obviously false. \endverbatim -/// -///\todo It should be in \c error.h -#define check(rc, msg) \ - if(!(rc)) { \ - std::cerr << __FILE__ ":" << __LINE__ << ": error: " << msg << std::endl; \ - exit(1); \ - } else { } \ - -///Structure returned by \ref addPetersen(). - -///Structure returned by \ref addPetersen(). -/// -template struct PetStruct -{ - ///Vector containing the outer nodes. - std::vector outer; - ///Vector containing the inner nodes. - std::vector inner; - ///Vector containing the edges of the inner circle. - std::vector incir; - ///Vector containing the edges of the outer circle. - std::vector outcir; - ///Vector containing the chord edges. - std::vector chords; -}; - - - -///Adds a Petersen graph to \c G. - -///Adds a Petersen graph to \c G. -///\return The nodes and edges of the generated graph. - -template -PetStruct addPetersen(Graph &G,int num = 5) -{ - PetStruct n; - - for(int i=0;i void bidirGraph(Graph &G) -{ - typedef typename Graph::Edge Edge; - typedef typename Graph::EdgeIt EdgeIt; - - std::vector ee; - - for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e); - - for(typename std::vector::iterator p=ee.begin();p!=ee.end();p++) - G.addEdge(G.target(*p),G.source(*p)); -} - - -/// \brief Checks the bidirectioned Petersen graph. -/// -/// Checks the bidirectioned Petersen graph. -/// -template void checkBidirPetersen(Graph &G, int num = 5) -{ - typedef typename Graph::Node Node; - - typedef typename Graph::EdgeIt EdgeIt; - typedef typename Graph::NodeIt NodeIt; - - checkGraphNodeList(G, 2 * num); - checkGraphEdgeList(G, 6 * num); - - for(NodeIt n(G);n!=INVALID;++n) { - checkGraphInEdgeList(G, n, 3); - checkGraphOutEdgeList(G, n, 3); - } -} - -///Structure returned by \ref addSymPetersen(). - -///Structure returned by \ref addSymPetersen(). -/// -template struct SymPetStruct -{ - ///Vector containing the outer nodes. - std::vector outer; - ///Vector containing the inner nodes. - std::vector inner; - ///Vector containing the edges of the inner circle. - std::vector incir; - ///Vector containing the edges of the outer circle. - std::vector outcir; - ///Vector containing the chord edges. - std::vector chords; -}; - -///Adds a Petersen graph to the symmetric \c G. - -///Adds a Petersen graph to the symmetric \c G. -///\return The nodes and edges of the generated graph. - -template -SymPetStruct addSymPetersen(Graph &G,int num=5) -{ - SymPetStruct n; - - for(int i=0;i