COIN-OR::LEMON - Graph Library

Changeset 2335:27aa03cd3121 in lemon-0.x for test/path_test.cc


Ignore:
Timestamp:
01/08/07 11:39:59 (17 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3123
Message:

New path concept and path structures

TODO: BellmanFord::negativeCycle()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/path_test.cc

    r2260 r2335  
    3232
    3333void check_concepts() {
    34   checkConcept<concepts::Path<concepts::Graph>,
    35     concepts::Path<concepts::Graph> >();
    36   checkConcept<concepts::Path<concepts::Graph>,
    37     Path<concepts::Graph> >();
     34  checkConcept<concepts::Path<ListGraph>, concepts::Path<ListGraph> >();
    3835  checkConcept<concepts::Path<ListGraph>, Path<ListGraph> >();
     36  checkConcept<concepts::Path<ListGraph>, SimplePath<ListGraph> >();
     37  checkConcept<concepts::Path<ListGraph>, StaticPath<ListGraph> >();
     38  checkConcept<concepts::Path<ListGraph>, ListPath<ListGraph> >();
    3939}
    4040
    4141int main() {
    42   check_concepts();
    43  
    44   ListGraph g;
    45  
    46   ListGraph::Node n1 = g.addNode();
    47   ListGraph::Node n2 = g.addNode();
    48   ListGraph::Node n3 = g.addNode();
    49   ListGraph::Node n4 = g.addNode();
    50   ListGraph::Node n5 = g.addNode();
    51  
    52   ListGraph::Edge e1 = g.addEdge(n1, n2);
    53   ListGraph::Edge e2 = g.addEdge(n2, n3);
    54   ListGraph::Edge e3 = g.addEdge(n3, n4);
    55   ListGraph::Edge e4 = g.addEdge(n4, n5);
    56   ListGraph::Edge e5 = g.addEdge(n5, n1);
    57 
    58   {
    59     Path<ListGraph> p(g);
    60 
    61     check(p.empty(), "Wrong Path");
    62     check(p.length() == 0, "Wrong Path");
    63    
    64     {
    65       Path<ListGraph>::Builder b(p);
    66       b.setStartNode(n3);
    67       b.commit();
    68     }
    69 
    70     check(!p.empty(), "Wrong Path");
    71     check(p.length() == 0, "Wrong Path");
    72     check(p.source() == n3, "Wrong Path");
    73     check(p.target() == n3, "Wrong Path");
    74 
    75     {
    76       Path<ListGraph>::Builder b(p);
    77       b.pushBack(e3);
    78       b.pushBack(e4);
    79       b.pushFront(e2);
    80       b.commit();
    81     }
    82 
    83     check(!p.empty(), "Wrong Path");
    84     check(p.length() == 3, "Wrong Path");
    85     check(p.source() == n2, "Wrong Path");
    86     check(p.target() == n5, "Wrong Path");
    87    
    88     {
    89       Path<ListGraph>::NodeIt it(p);
    90       check((ListGraph::Node)it == n2, "Wrong Path"); ++it;
    91       check((ListGraph::Node)it == n3, "Wrong Path"); ++it;
    92       check((ListGraph::Node)it == n4, "Wrong Path"); ++it;
    93       check((ListGraph::Node)it == n5, "Wrong Path"); ++it;
    94       check((ListGraph::Node)it == INVALID, "Wrong Path");
    95     }
    96 
    97     {
    98       Path<ListGraph>::EdgeIt it(p);
    99       check((ListGraph::Edge)it == e2, "Wrong Path"); ++it;
    100       check((ListGraph::Edge)it == e3, "Wrong Path"); ++it;
    101       check((ListGraph::Edge)it == e4, "Wrong Path"); ++it;
    102       check((ListGraph::Edge)it == INVALID, "Wrong Path");
    103     }
    104    
    105   }
    106  
     42  check_concepts(); 
    10743  return 0;
    10844}
Note: See TracChangeset for help on using the changeset viewer.