# HG changeset patch # User Peter Kovacs # Date 1258068279 -3600 # Node ID d93490b861e941a9d28f1ae87b226d4279eeadc3 # Parent bc75ee2ad082679c2b25dc8996e5eeaef999ae36 Adds tests for the new MCF algorithms (#180) diff -r bc75ee2ad082 -r d93490b861e9 test/min_cost_flow_test.cc --- a/test/min_cost_flow_test.cc Fri Nov 13 00:23:07 2009 +0100 +++ b/test/min_cost_flow_test.cc Fri Nov 13 00:24:39 2009 +0100 @@ -24,8 +24,12 @@ #include #include +#include +#include +#include #include +#include #include #include "test_tools.h" @@ -457,6 +461,45 @@ NetworkSimplex >(); } + // Check the interface of CapacityScaling + { + typedef concepts::Digraph GR; + checkConcept< McfClassConcept, + CapacityScaling >(); + checkConcept< McfClassConcept, + CapacityScaling >(); + checkConcept< McfClassConcept, + CapacityScaling >(); + typedef CapacityScaling:: + SetHeap > >::Create CAS; + checkConcept< McfClassConcept, CAS >(); + } + + // Check the interface of CostScaling + { + typedef concepts::Digraph GR; + checkConcept< McfClassConcept, + CostScaling >(); + checkConcept< McfClassConcept, + CostScaling >(); + checkConcept< McfClassConcept, + CostScaling >(); + typedef CostScaling:: + SetLargeCost::Create COS; + checkConcept< McfClassConcept, COS >(); + } + + // Check the interface of CycleCanceling + { + typedef concepts::Digraph GR; + checkConcept< McfClassConcept, + CycleCanceling >(); + checkConcept< McfClassConcept, + CycleCanceling >(); + checkConcept< McfClassConcept, + CycleCanceling >(); + } + // Test NetworkSimplex { typedef NetworkSimplex MCF; @@ -471,6 +514,29 @@ runMcfGeqTests(MCF::ALTERING_LIST, "NS-AL", true); runMcfLeqTests(MCF::ALTERING_LIST, "NS-AL"); } + + // Test CapacityScaling + { + typedef CapacityScaling MCF; + runMcfGeqTests(0, "SSP"); + runMcfGeqTests(2, "CAS"); + } + + // Test CostScaling + { + typedef CostScaling MCF; + runMcfGeqTests(MCF::PUSH, "COS-PR"); + runMcfGeqTests(MCF::AUGMENT, "COS-AR"); + runMcfGeqTests(MCF::PARTIAL_AUGMENT, "COS-PAR"); + } + + // Test CycleCanceling + { + typedef CycleCanceling MCF; + runMcfGeqTests(MCF::SIMPLE_CYCLE_CANCELING, "SCC"); + runMcfGeqTests(MCF::MINIMUM_MEAN_CYCLE_CANCELING, "MMCC"); + runMcfGeqTests(MCF::CANCEL_AND_TIGHTEN, "CAT"); + } return 0; }