COIN-OR::LEMON - Graph Library

Changes in / [363:a637fb9d457b:366:efbd0ab50a77] in lemon-1.2


Ignore:
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • lemon/Makefile.am

    r363 r366  
    3232        lemon/graph_to_eps.h \
    3333        lemon/grid_graph.h \
     34        lemon/hypercube_graph.h \
    3435        lemon/kruskal.h \
    3536        lemon/lgf_reader.h \
  • test/digraph_test.cc

    r354 r365  
    2121#include <lemon/smart_graph.h>
    2222#include <lemon/full_graph.h>
    23 //#include <lemon/hypercube_graph.h>
    2423
    2524#include "test_tools.h"
     
    113112}
    114113
    115 
    116114void checkConcepts() {
    117115  { // Checking digraph components
     
    146144    checkConcept<Digraph, FullDigraph>();
    147145  }
    148 //  { // Checking HyperCubeDigraph
    149 //    checkConcept<Digraph, HyperCubeDigraph>();
    150 //  }
    151146}
    152147
  • test/graph_test.cc

    r356 r365  
    2222#include <lemon/full_graph.h>
    2323#include <lemon/grid_graph.h>
     24#include <lemon/hypercube_graph.h>
    2425
    2526#include "test_tools.h"
     
    105106
    106107  for (NodeIt n(G); n != INVALID; ++n) {
    107     checkGraphOutArcList(G, n, num - 1);   
    108     checkGraphInArcList(G, n, num - 1);   
    109     checkGraphIncEdgeList(G, n, num - 1);   
     108    checkGraphOutArcList(G, n, num - 1);
     109    checkGraphInArcList(G, n, num - 1);
     110    checkGraphIncEdgeList(G, n, num - 1);
    110111  }
    111112
     
    122123  checkGraphEdgeMap(G);
    123124
    124  
     125
    125126  for (int i = 0; i < G.nodeNum(); ++i) {
    126127    check(G.index(G(i)) == i, "Wrong index");
     
    178179    checkConcept<Graph, GridGraph>();
    179180  }
     181  { // Checking HypercubeGraph
     182    checkConcept<Graph, HypercubeGraph>();
     183  }
    180184}
    181185
     
    313317}
    314318
     319void checkHypercubeGraph(int dim) {
     320  GRAPH_TYPEDEFS(HypercubeGraph);
     321
     322  HypercubeGraph G(dim);
     323  checkGraphNodeList(G, 1 << dim);
     324  checkGraphEdgeList(G, dim * (1 << dim-1));
     325  checkGraphArcList(G, dim * (1 << dim));
     326
     327  Node n = G.nodeFromId(dim);
     328
     329  for (NodeIt n(G); n != INVALID; ++n) {
     330    checkGraphIncEdgeList(G, n, dim);
     331    for (IncEdgeIt e(G, n); e != INVALID; ++e) {
     332      check( (G.u(e) == n &&
     333              G.id(G.v(e)) == G.id(n) ^ (1 << G.dimension(e))) ||
     334             (G.v(e) == n &&
     335              G.id(G.u(e)) == G.id(n) ^ (1 << G.dimension(e))),
     336             "Wrong edge or wrong dimension");
     337    }
     338
     339    checkGraphOutArcList(G, n, dim);
     340    for (OutArcIt a(G, n); a != INVALID; ++a) {
     341      check(G.source(a) == n &&
     342            G.id(G.target(a)) == G.id(n) ^ (1 << G.dimension(a)),
     343            "Wrong arc or wrong dimension");
     344    }
     345
     346    checkGraphInArcList(G, n, dim);
     347    for (InArcIt a(G, n); a != INVALID; ++a) {
     348      check(G.target(a) == n &&
     349            G.id(G.source(a)) == G.id(n) ^ (1 << G.dimension(a)),
     350            "Wrong arc or wrong dimension");
     351    }
     352  }
     353
     354  checkGraphConArcList(G, (1 << dim) * dim);
     355  checkGraphConEdgeList(G, dim * (1 << dim-1));
     356
     357  checkArcDirections(G);
     358
     359  checkNodeIds(G);
     360  checkArcIds(G);
     361  checkEdgeIds(G);
     362  checkGraphNodeMap(G);
     363  checkGraphArcMap(G);
     364  checkGraphEdgeMap(G);
     365}
     366
    315367void checkGraphs() {
    316368  { // Checking ListGraph
     
    322374    checkGraphValidity<SmartGraph>();
    323375  }
    324   { // Checking FullGraph   
     376  { // Checking FullGraph
    325377    checkFullGraph(7);
    326378    checkFullGraph(8);
     
    333385    checkGridGraph(1, 1);
    334386  }
     387  { // Checking HypercubeGraph
     388    checkHypercubeGraph(1);
     389    checkHypercubeGraph(2);
     390    checkHypercubeGraph(3);
     391    checkHypercubeGraph(4);
     392  }
    335393}
    336394
  • tools/lemon-0.x-to-1.x.sh

    r359 r366  
    8282        -e "s/\<copyGraph\>/graphCopy/g"\
    8383        -e "s/\<copyDigraph\>/digraphCopy/g"\
     84        -e "s/\<HyperCubeDigraph\>/HypercubeGraph/g"\
    8485        -e "s/\<IntegerMap\>/RangeMap/g"\
    8586        -e "s/\<integerMap\>/rangeMap/g"\
Note: See TracChangeset for help on using the changeset viewer.