// -*- c++ -*- #include #include #include #include #include #include #include "test_tools.h" #include "graph_utils_test.h" using namespace lemon; template void checkSnapDeg() { Graph g; typename Graph::Node n1=g.addNode(); typename Graph::Node n2=g.addNode(); InDegMap ind(g); g.addEdge(n1,n2); typename Graph::SnapShot snap(g); OutDegMap outd(g); check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value."); check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value."); g.addEdge(n1,n2); g.addEdge(n2,n1); check(ind[n1]==1 && ind[n2]==2, "Wrong InDegMap value."); check(outd[n1]==2 && outd[n2]==1, "Wrong OutDegMap value."); snap.restore(); check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value."); check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value."); } int main() { ///\file { // checking list graph checkGraphCounters(); } { // checking smart graph checkGraphCounters(); } { int num = 5; FullGraph fg(num); check(countNodes(fg) == num, "FullGraph: wrong node number."); check(countEdges(fg) == num*num, "FullGraph: wrong edge number."); } //check In/OutDegMap (and SnapShot feature) checkSnapDeg(); checkSnapDeg(); ///Everything is OK std::cout << __FILE__ ": All tests passed.\n"; return 0; }