marci@849: #include marci@849: #include marci@849: #include marci@849: #include marci@849: #include marci@849: #include marci@849: marci@870: #include"test/test_tools.h" marci@870: #include"test/graph_test.h" marci@849: marci@849: /** marci@849: \file marci@849: This test makes consistency checks of list graph structures. marci@849: marci@849: G.addNode(), G.addEdge(), G.tail(), G.head() marci@849: marci@849: \todo Checks for empty graphs and isolated points. marci@849: conversion. marci@849: */ marci@849: marci@849: using namespace hugo; marci@849: marci@870: // template void bidirPetersen(Graph &G) marci@870: // { marci@870: // typedef typename Graph::Edge Edge; marci@870: // typedef typename Graph::EdgeIt EdgeIt; marci@849: marci@870: // checkGraphEdgeList(G,15); marci@849: marci@870: // std::vector ee; marci@849: marci@870: // for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e); marci@849: marci@870: // for(typename std::vector::iterator p=ee.begin();p!=ee.end();p++) marci@870: // G.addEdge(G.head(*p),G.tail(*p)); marci@870: // } marci@849: marci@870: // template void checkPetersen(Graph &G) marci@870: // { marci@870: // typedef typename Graph::Node Node; marci@849: marci@870: // typedef typename Graph::EdgeIt EdgeIt; marci@870: // typedef typename Graph::NodeIt NodeIt; marci@849: marci@870: // checkGraphNodeList(G,10); marci@870: // checkGraphEdgeList(G,30); marci@849: marci@870: // for(NodeIt n(G);n!=INVALID;++n) { marci@870: // checkGraphInEdgeList(G,n,3); marci@870: // checkGraphOutEdgeList(G,n,3); marci@870: // ++n; marci@870: // } marci@870: // } marci@849: marci@870: // //Compile GraphSkeleton marci@870: // template void checkCompileStaticGraph marci@870: // (skeleton::StaticGraphSkeleton &); marci@849: alpar@873: // template void checkCompileGraph alpar@873: // (skeleton::ExtendableGraphSkeleton &); marci@849: marci@870: // template void checkCompileErasableGraph marci@870: // (skeleton::ErasableGraphSkeleton &); marci@849: marci@849: //Compile SmartGraph marci@849: typedef SmartGraph Graph; marci@849: typedef GraphWrapper GW; marci@849: template void checkCompileStaticGraph(GW &); marci@849: //template void checkCompileGraphFindEdge(SmartGraph &); marci@849: marci@849: //Compile SymSmartGraph marci@849: typedef RevGraphWrapper RevGW; marci@849: template void checkCompileStaticGraph(RevGW &); marci@849: //template void checkCompileGraphFindEdge(SymSmartGraph &); marci@849: marci@849: // //Compile ListGraph marci@849: // template void checkCompileGraph(ListGraph &); marci@849: // template void checkCompileErasableGraph(ListGraph &); marci@849: // template void checkCompileGraphFindEdge(ListGraph &); marci@849: marci@849: marci@849: // //Compile SymListGraph marci@849: // template void checkCompileGraph(SymListGraph &); marci@849: // template void checkCompileErasableGraph(SymListGraph &); marci@849: // template void checkCompileGraphFindEdge(SymListGraph &); marci@849: marci@849: // //Compile FullGraph marci@849: // template void checkCompileStaticGraph(FullGraph &); marci@849: // template void checkCompileGraphFindEdge(FullGraph &); marci@849: marci@849: // //Compile EdgeSet marci@849: // template void checkCompileGraph >(EdgeSet &); marci@849: // template void checkCompileGraphEraseEdge > marci@849: // (EdgeSet &); marci@849: // template void checkCompileGraphFindEdge > marci@849: // (EdgeSet &); marci@849: marci@849: // //Compile EdgeSet marci@849: // template void checkCompileGraph >(EdgeSet &); marci@849: // template void checkCompileGraphEraseEdge > marci@849: // (EdgeSet &); marci@849: // template void checkCompileGraphFindEdge > marci@849: // (EdgeSet &); marci@849: marci@849: marci@849: int main() marci@849: { marci@849: // { marci@849: // SmartGraph G; marci@849: // addPetersen(G); marci@849: // bidirPetersen(G); marci@849: // checkPetersen(G); marci@849: // } marci@849: // { marci@849: // ListGraph G; marci@849: // addPetersen(G); marci@849: // bidirPetersen(G); marci@849: // checkPetersen(G); marci@849: // } marci@849: // { marci@849: // SymSmartGraph G; marci@849: // addPetersen(G); marci@849: // checkPetersen(G); marci@849: // } marci@849: // { marci@849: // SymListGraph G; marci@849: // addPetersen(G); marci@849: // checkPetersen(G); marci@849: // } marci@849: marci@849: ///\file marci@849: ///\todo map tests. marci@849: ///\todo copy constr tests. marci@849: marci@849: std::cout << __FILE__ ": All tests passed.\n"; marci@849: marci@849: return 0; marci@849: }