Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
tpl_maxflow_test.cc File Reference
#include <gtest/gtest.h>
#include <tpl_maxflow.H>
#include <tpl_net.H>
#include <chrono>
#include <random>
#include <stdexcept>
Include dependency graph for tpl_maxflow_test.cc:

Go to the source code of this file.

Functions

 TEST (DinicTest, LinearNetwork)
 
 TEST (DinicTest, DiamondNetwork)
 
 TEST (DinicTest, ComplexNetwork)
 
 TEST (DinicTest, ZeroCapacity)
 
 TEST (DinicTest, SingleArc)
 
 TEST (CapacityScalingTest, LinearNetwork)
 
 TEST (CapacityScalingTest, DiamondNetwork)
 
 TEST (CapacityScalingTest, ComplexNetwork)
 
 TEST (CapacityScalingTest, LargeCapacities)
 
 TEST (HLPPTest, LinearNetwork)
 
 TEST (HLPPTest, DiamondNetwork)
 
 TEST (HLPPTest, ComplexNetwork)
 
 TEST (FlowDecompositionTest, LinearFlow)
 
 TEST (FlowDecompositionTest, DiamondFlow)
 
 TEST (FlowDecompositionTest, ComplexFlow)
 
 TEST (FlowDecompositionTest, ZeroFlow)
 
 TEST (FlowDecompositionTest, CycleDetection)
 
 TEST (FlowStatisticsTest, BeforeFlow)
 
 TEST (FlowStatisticsTest, AfterFlow)
 
template<class Net >
double compute_min_cut_capacity (Net &net)
 
template<class Net >
bool verify_max_flow_min_cut (Net &net, double max_flow)
 
 TEST (MinCutTest, LinearNetwork)
 
 TEST (MinCutTest, DiamondNetwork)
 
 TEST (MinCutTest, ComplexNetwork)
 
 TEST (MinCutTest, GridNetwork)
 
 TEST (MinCutTest, SingleBottleneck)
 
 TEST (MinCutTest, ParallelArcs)
 
 TEST (MinCutTest, AllAlgorithmsGiveSameMinCut)
 
 TEST (MinCutTest, VerifyCutPartition)
 
 TEST (AlgorithmComparisonTest, AllAlgorithmsAgree)
 
 TEST (AlgorithmComparisonTest, GridNetwork)
 
 TEST (EdgeCasesTest, ParallelArcs)
 
 TEST (EdgeCasesTest, SourceBottleneck)
 
 TEST (EdgeCasesTest, SinkBottleneck)
 
 TEST (FunctorTest, DinicFunctor)
 
 TEST (FunctorTest, CapacityScalingFunctor)
 
 TEST (FunctorTest, HLPPFunctor)
 
 TEST (FunctorTest, DecomposeFunctor)
 
 TEST (PerformanceTest, Benchmark)
 
 TEST (RegressionTest, HLPPDisconnectedNodeRelabel)
 
Nodebuild_antiparallel_network (TestNet &net)
 
 TEST (AntiParallelTest, AllAlgorithmsAgreeOnAntiParallel)
 
 TEST (AntiParallelTest, PureAntiParallel)
 
 TEST (CapacityScalingTest, FractionalCapacities)
 
 TEST (CapacityScalingTest, MixedIntegerFractional)
 
template<class Net >
void verify_flow_conservation (const Net &net)
 
 TEST (HLPPStressTest, LadderNetwork)
 
 TEST (HLPPStressTest, HighExcessBottleneck)
 
 TEST (FlowDecompositionTest, ArcFlowConsistency)
 
 TEST (FlowDecompositionTest, Phase2CycleClosingNode)
 
 TEST (FlowDecompositionTest, Phase1CycleClosingNode)
 
 TEST (DisconnectedTest, ZeroCapacityBottleneck)
 
 TEST (DisconnectedTest, InvalidNetworkThrows)
 
 TEST (DinicStressTest, LongChain)
 
 TEST (DinicStressTest, WideParallel)
 
 TEST (RandomStressTest, SmallRandomGraphs)
 
 TEST (RandomStressTest, MediumRandomGraphs)
 
 TEST (IntegerFlowTest, AllAlgorithmsAgree)
 
 TEST (IntegerFlowTest, ComplexIntegerNetwork)
 
 TEST (IntegerFlowTest, RandomIntegerGraphs)
 
 TEST (IntegerFlowTest, MinCutVerification)
 
int main (int argc, char **argv)
 

Function Documentation

◆ build_antiparallel_network()

Node * build_antiparallel_network ( TestNet net)

◆ compute_min_cut_capacity()

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1730 of file tpl_maxflow_test.cc.

References Aleph::maps().

◆ TEST() [1/57]

TEST ( AlgorithmComparisonTest  ,
AllAlgorithmsAgree   
)

◆ TEST() [2/57]

TEST ( AlgorithmComparisonTest  ,
GridNetwork   
)

◆ TEST() [3/57]

◆ TEST() [4/57]

◆ TEST() [5/57]

TEST ( CapacityScalingTest  ,
ComplexNetwork   
)

◆ TEST() [6/57]

TEST ( CapacityScalingTest  ,
DiamondNetwork   
)

◆ TEST() [7/57]

◆ TEST() [8/57]

◆ TEST() [9/57]

TEST ( CapacityScalingTest  ,
LinearNetwork   
)

◆ TEST() [10/57]

◆ TEST() [11/57]

◆ TEST() [12/57]

◆ TEST() [13/57]

TEST ( DinicTest  ,
ComplexNetwork   
)

◆ TEST() [14/57]

TEST ( DinicTest  ,
DiamondNetwork   
)

◆ TEST() [15/57]

TEST ( DinicTest  ,
LinearNetwork   
)

◆ TEST() [16/57]

◆ TEST() [17/57]

◆ TEST() [18/57]

◆ TEST() [19/57]

TEST ( DisconnectedTest  ,
ZeroCapacityBottleneck   
)

◆ TEST() [20/57]

◆ TEST() [21/57]

◆ TEST() [22/57]

TEST ( EdgeCasesTest  ,
SourceBottleneck   
)

◆ TEST() [23/57]

◆ TEST() [24/57]

TEST ( FlowDecompositionTest  ,
ComplexFlow   
)

◆ TEST() [25/57]

◆ TEST() [26/57]

TEST ( FlowDecompositionTest  ,
DiamondFlow   
)

◆ TEST() [27/57]

TEST ( FlowDecompositionTest  ,
LinearFlow   
)

◆ TEST() [28/57]

◆ TEST() [29/57]

◆ TEST() [30/57]

TEST ( FlowDecompositionTest  ,
ZeroFlow   
)

◆ TEST() [31/57]

TEST ( FlowStatisticsTest  ,
AfterFlow   
)

◆ TEST() [32/57]

TEST ( FlowStatisticsTest  ,
BeforeFlow   
)

Definition at line 382 of file tpl_maxflow_test.cc.

References Aleph::compute_flow_statistics(), and Aleph::maps().

◆ TEST() [33/57]

TEST ( FunctorTest  ,
CapacityScalingFunctor   
)

Definition at line 787 of file tpl_maxflow_test.cc.

References Aleph::maps().

◆ TEST() [34/57]

TEST ( FunctorTest  ,
DecomposeFunctor   
)

Definition at line 807 of file tpl_maxflow_test.cc.

References Aleph::dinic_maximum_flow(), and Aleph::maps().

◆ TEST() [35/57]

TEST ( FunctorTest  ,
DinicFunctor   
)

Definition at line 777 of file tpl_maxflow_test.cc.

References Aleph::maps().

◆ TEST() [36/57]

TEST ( FunctorTest  ,
HLPPFunctor   
)

Definition at line 797 of file tpl_maxflow_test.cc.

References Aleph::maps().

◆ TEST() [37/57]

◆ TEST() [38/57]

◆ TEST() [39/57]

TEST ( HLPPTest  ,
ComplexNetwork   
)

◆ TEST() [40/57]

TEST ( HLPPTest  ,
DiamondNetwork   
)

◆ TEST() [41/57]

TEST ( HLPPTest  ,
LinearNetwork   
)

◆ TEST() [42/57]

TEST ( IntegerFlowTest  ,
AllAlgorithmsAgree   
)

◆ TEST() [43/57]

TEST ( IntegerFlowTest  ,
ComplexIntegerNetwork   
)

◆ TEST() [44/57]

TEST ( IntegerFlowTest  ,
MinCutVerification   
)

◆ TEST() [45/57]

TEST ( IntegerFlowTest  ,
RandomIntegerGraphs   
)

◆ TEST() [46/57]

◆ TEST() [47/57]

TEST ( MinCutTest  ,
ComplexNetwork   
)

◆ TEST() [48/57]

TEST ( MinCutTest  ,
DiamondNetwork   
)

◆ TEST() [49/57]

TEST ( MinCutTest  ,
GridNetwork   
)

◆ TEST() [50/57]

TEST ( MinCutTest  ,
LinearNetwork   
)

◆ TEST() [51/57]

◆ TEST() [52/57]

◆ TEST() [53/57]

◆ TEST() [54/57]

◆ TEST() [55/57]

TEST ( RandomStressTest  ,
MediumRandomGraphs   
)

◆ TEST() [56/57]

TEST ( RandomStressTest  ,
SmallRandomGraphs   
)

◆ TEST() [57/57]

◆ verify_flow_conservation()

◆ verify_max_flow_min_cut()

template<class Net >
bool verify_max_flow_min_cut ( Net net,
double  max_flow 
)

Definition at line 475 of file tpl_maxflow_test.cc.

References compute_min_cut_capacity(), and Aleph::min_cut().

Referenced by TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().