COIN-OR::LEMON - Graph Library

Changeset 2180:d5544c9409e4 in lemon-0.x


Ignore:
Timestamp:
08/14/06 18:08:28 (13 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2897
Message:

Omit warning
Using check instead of the LEMON_ASSERT
Using fixed graph

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/arborescence_test.cc

    r2025 r2180  
    1515#include <lemon/tolerance.h>
    1616
     17#include "test_tools.h"
     18
    1719using namespace lemon;
    1820using namespace std;
    1921
    20 int main(int argc, const char *argv[]) {
     22const int n = 10;
     23const int e = 22;
     24
     25int sourceNode = 0;
     26
     27int sources[e] = {
     28  1, 0, 2, 4, 4, 3, 9, 8, 9, 8,
     29  4, 2, 0, 6, 4, 1, 7, 2, 8, 6,
     30  1, 0
     31};
     32
     33int targets[e] = {
     34  8, 3, 1, 1, 4, 9, 8, 1, 8, 0,
     35  3, 2, 1, 3, 1, 1, 2, 6, 3, 9,
     36  1, 3
     37};
     38
     39double costs[e] = {
     40  107.444, 70.3069, 46.0496, 28.3962, 91.4325,
     41  76.9443, 61.986, 39.3754, 74.9575, 39.3153,
     42  45.7094, 34.6184, 100.156, 95.726, 22.3429,
     43  31.587, 51.6972, 29.6773, 115.038, 32.4137,
     44  60.0038, 40.1237
     45};
     46
     47
     48
     49int main() {
    2150  srand(time(0));
    2251  typedef SmartGraph Graph;
     
    2453
    2554  typedef Graph::EdgeMap<double> CostMap;
    26 
    27   const int n = argc > 1 ? atoi(argv[1]) : 100;
    28   const int e = argc > 2 ? atoi(argv[2]) : (int)(n * log(n));
    2955
    3056  Graph graph;
     
    3763
    3864  for (int i = 0; i < e; ++i) {
    39     int s = (int)(n * (double)rand() / (RAND_MAX + 1.0));
    40     int t = (int)(n * (double)rand() / (RAND_MAX + 1.0));
    41     double c = rand() / (1.0 + RAND_MAX) * 100.0 + 20.0;
    42     Edge edge = graph.addEdge(nodes[s], nodes[t]);
    43     cost[edge] = c;
     65    Edge edge = graph.addEdge(nodes[sources[i]], nodes[targets[i]]);
     66    cost[edge] = costs[i];
    4467  }
    4568
    46   Node source = nodes[(int)(n * (double)rand() / (RAND_MAX + 1.0))];
     69  Node source = nodes[sourceNode];
    4770
    4871  MinCostArborescence<Graph, CostMap> mca(graph, cost);
     
    7396      }
    7497      if (mca.arborescence(it)) {
    75         LEMON_ASSERT(!tolerance.less(sum, cost[it]), "INVALID DUAL");
     98        check(!tolerance.less(sum, cost[it]), "INVALID DUAL");
    7699      }
    77       LEMON_ASSERT(!tolerance.less(cost[it], sum), "INVALID DUAL");
     100      check(!tolerance.less(cost[it], sum), "INVALID DUAL");
    78101    }
    79102  }
    80103
    81104
    82   LEMON_ASSERT(!tolerance.different(mca.dualValue(), mca.arborescenceValue()),
     105  check(!tolerance.different(mca.dualValue(), mca.arborescenceValue()),
    83106               "INVALID DUAL");
    84107
    85108
    86   LEMON_ASSERT(mca.reached(source), "INVALID ARBORESCENCE");
     109  check(mca.reached(source), "INVALID ARBORESCENCE");
    87110  for (EdgeIt it(graph); it != INVALID; ++it) {
    88     LEMON_ASSERT(!mca.reached(graph.source(it)) ||
     111    check(!mca.reached(graph.source(it)) ||
    89112                 mca.reached(graph.target(it)), "INVALID ARBORESCENCE");
    90113  }
     
    98121      }
    99122    }
    100     LEMON_ASSERT((it == source ? cnt == 0 : cnt == 1), "INVALID ARBORESCENCE");
     123    check((it == source ? cnt == 0 : cnt == 1), "INVALID ARBORESCENCE");
    101124  }
    102125 
Note: See TracChangeset for help on using the changeset viewer.