COIN-OR::LEMON - Graph Library

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/adaptors_test.cc

    r550 r488  
    13721372
    13731373  GridGraph::EdgeMap<bool> dir_map(graph);
    1374   dir_map[graph.right(n1)] = graph.u(graph.right(n1)) != n1;
    1375   dir_map[graph.up(n1)] = graph.u(graph.up(n1)) == n1;
    1376   dir_map[graph.left(n4)] = graph.u(graph.left(n4)) == n4;
    1377   dir_map[graph.down(n4)] = graph.u(graph.down(n4)) == n4;
     1374  dir_map[graph.right(n1)] = graph.u(graph.right(n1)) == n1;
     1375  dir_map[graph.up(n1)] = graph.u(graph.up(n1)) != n1;
     1376  dir_map[graph.left(n4)] = graph.u(graph.left(n4)) != n4;
     1377  dir_map[graph.down(n4)] = graph.u(graph.down(n4)) != n4;
    13781378
    13791379  // Apply several adaptors on the grid graph
    1380   typedef SplitNodes<Orienter< const GridGraph, GridGraph::EdgeMap<bool> > >
    1381     SplitGridGraph;
     1380  typedef SplitNodes< ReverseDigraph< const Orienter<
     1381            const GridGraph, GridGraph::EdgeMap<bool> > > >
     1382    RevSplitGridGraph;
     1383  typedef ReverseDigraph<const RevSplitGridGraph> SplitGridGraph;
    13821384  typedef Undirector<const SplitGridGraph> USplitGridGraph;
     1385  typedef Undirector<const USplitGridGraph> UUSplitGridGraph;
     1386  checkConcept<concepts::Digraph, RevSplitGridGraph>();
    13831387  checkConcept<concepts::Digraph, SplitGridGraph>();
    13841388  checkConcept<concepts::Graph, USplitGridGraph>();
    1385 
    1386   SplitGridGraph adaptor = splitNodes(orienter(graph, dir_map));
     1389  checkConcept<concepts::Graph, UUSplitGridGraph>();
     1390
     1391  RevSplitGridGraph rev_adaptor =
     1392    splitNodes(reverseDigraph(orienter(graph, dir_map)));
     1393  SplitGridGraph adaptor = reverseDigraph(rev_adaptor);
    13871394  USplitGridGraph uadaptor = undirector(adaptor);
     1395  UUSplitGridGraph uuadaptor = undirector(uadaptor);
    13881396
    13891397  // Check adaptor
     
    13921400  checkGraphConArcList(adaptor, 8);
    13931401
    1394   checkGraphOutArcList(adaptor, adaptor.inNode(n1), 1);
    1395   checkGraphOutArcList(adaptor, adaptor.outNode(n1), 1);
    1396   checkGraphOutArcList(adaptor, adaptor.inNode(n2), 1);
    1397   checkGraphOutArcList(adaptor, adaptor.outNode(n2), 0);
    1398   checkGraphOutArcList(adaptor, adaptor.inNode(n3), 1);
    1399   checkGraphOutArcList(adaptor, adaptor.outNode(n3), 1);
    1400   checkGraphOutArcList(adaptor, adaptor.inNode(n4), 1);
    1401   checkGraphOutArcList(adaptor, adaptor.outNode(n4), 2);
    1402 
    1403   checkGraphInArcList(adaptor, adaptor.inNode(n1), 1);
    1404   checkGraphInArcList(adaptor, adaptor.outNode(n1), 1);
    1405   checkGraphInArcList(adaptor, adaptor.inNode(n2), 2);
    1406   checkGraphInArcList(adaptor, adaptor.outNode(n2), 1);
    1407   checkGraphInArcList(adaptor, adaptor.inNode(n3), 1);
    1408   checkGraphInArcList(adaptor, adaptor.outNode(n3), 1);
    1409   checkGraphInArcList(adaptor, adaptor.inNode(n4), 0);
    1410   checkGraphInArcList(adaptor, adaptor.outNode(n4), 1);
     1402  checkGraphOutArcList(adaptor, rev_adaptor.inNode(n1), 1);
     1403  checkGraphOutArcList(adaptor, rev_adaptor.outNode(n1), 1);
     1404  checkGraphOutArcList(adaptor, rev_adaptor.inNode(n2), 2);
     1405  checkGraphOutArcList(adaptor, rev_adaptor.outNode(n2), 1);
     1406  checkGraphOutArcList(adaptor, rev_adaptor.inNode(n3), 1);
     1407  checkGraphOutArcList(adaptor, rev_adaptor.outNode(n3), 1);
     1408  checkGraphOutArcList(adaptor, rev_adaptor.inNode(n4), 0);
     1409  checkGraphOutArcList(adaptor, rev_adaptor.outNode(n4), 1);
     1410
     1411  checkGraphInArcList(adaptor, rev_adaptor.inNode(n1), 1);
     1412  checkGraphInArcList(adaptor, rev_adaptor.outNode(n1), 1);
     1413  checkGraphInArcList(adaptor, rev_adaptor.inNode(n2), 1);
     1414  checkGraphInArcList(adaptor, rev_adaptor.outNode(n2), 0);
     1415  checkGraphInArcList(adaptor, rev_adaptor.inNode(n3), 1);
     1416  checkGraphInArcList(adaptor, rev_adaptor.outNode(n3), 1);
     1417  checkGraphInArcList(adaptor, rev_adaptor.inNode(n4), 1);
     1418  checkGraphInArcList(adaptor, rev_adaptor.outNode(n4), 2);
    14111419
    14121420  checkNodeIds(adaptor);
     
    14311439  checkGraphArcMap(uadaptor);
    14321440
    1433   checkGraphIncEdgeArcLists(uadaptor, adaptor.inNode(n1), 2);
    1434   checkGraphIncEdgeArcLists(uadaptor, adaptor.outNode(n1), 2);
    1435   checkGraphIncEdgeArcLists(uadaptor, adaptor.inNode(n2), 3);
    1436   checkGraphIncEdgeArcLists(uadaptor, adaptor.outNode(n2), 1);
    1437   checkGraphIncEdgeArcLists(uadaptor, adaptor.inNode(n3), 2);
    1438   checkGraphIncEdgeArcLists(uadaptor, adaptor.outNode(n3), 2);
    1439   checkGraphIncEdgeArcLists(uadaptor, adaptor.inNode(n4), 1);
    1440   checkGraphIncEdgeArcLists(uadaptor, adaptor.outNode(n4), 3);
     1441  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.inNode(n1), 2);
     1442  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.outNode(n1), 2);
     1443  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.inNode(n2), 3);
     1444  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.outNode(n2), 1);
     1445  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.inNode(n3), 2);
     1446  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.outNode(n3), 2);
     1447  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.inNode(n4), 1);
     1448  checkGraphIncEdgeArcLists(uadaptor, rev_adaptor.outNode(n4), 3);
     1449
     1450  // Check uuadaptor
     1451  checkGraphNodeList(uuadaptor, 8);
     1452  checkGraphEdgeList(uuadaptor, 16);
     1453  checkGraphArcList(uuadaptor, 32);
     1454  checkGraphConEdgeList(uuadaptor, 16);
     1455  checkGraphConArcList(uuadaptor, 32);
     1456
     1457  checkNodeIds(uuadaptor);
     1458  checkEdgeIds(uuadaptor);
     1459  checkArcIds(uuadaptor);
     1460
     1461  checkGraphNodeMap(uuadaptor);
     1462  checkGraphEdgeMap(uuadaptor);
     1463  checkGraphArcMap(uuadaptor);
    14411464}
    14421465
Note: See TracChangeset for help on using the changeset viewer.