diff -r 756a5ec551c8 -r 111698359429 test/min_cost_flow_test.cc --- a/test/min_cost_flow_test.cc Wed Apr 29 14:25:51 2009 +0200 +++ b/test/min_cost_flow_test.cc Wed Apr 29 16:54:27 2009 +0200 @@ -84,7 +84,7 @@ }; // Check the interface of an MCF algorithm -template +template class McfClassConcept { public: @@ -95,6 +95,7 @@ checkConcept(); MCF mcf(g); + const MCF& const_mcf = mcf; b = mcf.reset() .lowerMap(lower) @@ -102,47 +103,38 @@ .costMap(cost) .supplyMap(sup) .stSupply(n, n, k) - .flowMap(flow) - .potentialMap(pot) .run(); - - const MCF& const_mcf = mcf; - - const typename MCF::FlowMap &fm = const_mcf.flowMap(); - const typename MCF::PotentialMap &pm = const_mcf.potentialMap(); c = const_mcf.totalCost(); - double x = const_mcf.template totalCost(); + x = const_mcf.template totalCost(); v = const_mcf.flow(a); c = const_mcf.potential(n); - - v = const_mcf.INF; - - ignore_unused_variable_warning(fm); - ignore_unused_variable_warning(pm); - ignore_unused_variable_warning(x); + const_mcf.flowMap(fm); + const_mcf.potentialMap(pm); } typedef typename GR::Node Node; typedef typename GR::Arc Arc; - typedef concepts::ReadMap NM; - typedef concepts::ReadMap FAM; + typedef concepts::ReadMap NM; + typedef concepts::ReadMap VAM; typedef concepts::ReadMap CAM; + typedef concepts::WriteMap FlowMap; + typedef concepts::WriteMap PotMap; const GR &g; - const FAM &lower; - const FAM &upper; + const VAM &lower; + const VAM &upper; const CAM &cost; const NM ⊃ const Node &n; const Arc &a; - const Flow &k; - Flow v; - Cost c; + const Value &k; + FlowMap fm; + PotMap pm; bool b; - - typename MCF::FlowMap &flow; - typename MCF::PotentialMap &pot; + double x; + typename MCF::Value v; + typename MCF::Cost c; }; }; @@ -221,11 +213,14 @@ { check(mcf_result == result, "Wrong result " + test_id); if (optimal) { - check(checkFlow(gr, lower, upper, supply, mcf.flowMap(), type), + typename GR::template ArcMap flow(gr); + typename GR::template NodeMap pi(gr); + mcf.flowMap(flow); + mcf.potentialMap(pi); + check(checkFlow(gr, lower, upper, supply, flow, type), "The flow is not feasible " + test_id); check(mcf.totalCost() == total, "The flow is not optimal " + test_id); - check(checkPotential(gr, lower, upper, cost, supply, mcf.flowMap(), - mcf.potentialMap()), + check(checkPotential(gr, lower, upper, cost, supply, flow, pi), "Wrong potentials " + test_id); } } @@ -234,11 +229,13 @@ { // Check the interfaces { - typedef int Flow; - typedef int Cost; typedef concepts::Digraph GR; - checkConcept< McfClassConcept, - NetworkSimplex >(); + checkConcept< McfClassConcept, + NetworkSimplex >(); + checkConcept< McfClassConcept, + NetworkSimplex >(); + checkConcept< McfClassConcept, + NetworkSimplex >(); } // Run various MCF tests