| ... | ... |
@@ -26,4 +26,8 @@ |
| 26 | 26 |
#include <lemon/network_simplex.h> |
| 27 |
#include <lemon/capacity_scaling.h> |
|
| 28 |
#include <lemon/cost_scaling.h> |
|
| 29 |
#include <lemon/cycle_canceling.h> |
|
| 27 | 30 |
|
| 28 | 31 |
#include <lemon/concepts/digraph.h> |
| 32 |
#include <lemon/concepts/heap.h> |
|
| 29 | 33 |
#include <lemon/concept_check.h> |
| ... | ... |
@@ -459,2 +463,41 @@ |
| 459 | 463 |
|
| 464 |
// Check the interface of CapacityScaling |
|
| 465 |
{
|
|
| 466 |
typedef concepts::Digraph GR; |
|
| 467 |
checkConcept< McfClassConcept<GR, int, int>, |
|
| 468 |
CapacityScaling<GR> >(); |
|
| 469 |
checkConcept< McfClassConcept<GR, double, double>, |
|
| 470 |
CapacityScaling<GR, double> >(); |
|
| 471 |
checkConcept< McfClassConcept<GR, int, double>, |
|
| 472 |
CapacityScaling<GR, int, double> >(); |
|
| 473 |
typedef CapacityScaling<GR>:: |
|
| 474 |
SetHeap<concepts::Heap<int, RangeMap<int> > >::Create CAS; |
|
| 475 |
checkConcept< McfClassConcept<GR, int, int>, CAS >(); |
|
| 476 |
} |
|
| 477 |
|
|
| 478 |
// Check the interface of CostScaling |
|
| 479 |
{
|
|
| 480 |
typedef concepts::Digraph GR; |
|
| 481 |
checkConcept< McfClassConcept<GR, int, int>, |
|
| 482 |
CostScaling<GR> >(); |
|
| 483 |
checkConcept< McfClassConcept<GR, double, double>, |
|
| 484 |
CostScaling<GR, double> >(); |
|
| 485 |
checkConcept< McfClassConcept<GR, int, double>, |
|
| 486 |
CostScaling<GR, int, double> >(); |
|
| 487 |
typedef CostScaling<GR>:: |
|
| 488 |
SetLargeCost<double>::Create COS; |
|
| 489 |
checkConcept< McfClassConcept<GR, int, int>, COS >(); |
|
| 490 |
} |
|
| 491 |
|
|
| 492 |
// Check the interface of CycleCanceling |
|
| 493 |
{
|
|
| 494 |
typedef concepts::Digraph GR; |
|
| 495 |
checkConcept< McfClassConcept<GR, int, int>, |
|
| 496 |
CycleCanceling<GR> >(); |
|
| 497 |
checkConcept< McfClassConcept<GR, double, double>, |
|
| 498 |
CycleCanceling<GR, double> >(); |
|
| 499 |
checkConcept< McfClassConcept<GR, int, double>, |
|
| 500 |
CycleCanceling<GR, int, double> >(); |
|
| 501 |
} |
|
| 502 |
|
|
| 460 | 503 |
// Test NetworkSimplex |
| ... | ... |
@@ -473,2 +516,25 @@ |
| 473 | 516 |
} |
| 517 |
|
|
| 518 |
// Test CapacityScaling |
|
| 519 |
{
|
|
| 520 |
typedef CapacityScaling<Digraph> MCF; |
|
| 521 |
runMcfGeqTests<MCF>(0, "SSP"); |
|
| 522 |
runMcfGeqTests<MCF>(2, "CAS"); |
|
| 523 |
} |
|
| 524 |
|
|
| 525 |
// Test CostScaling |
|
| 526 |
{
|
|
| 527 |
typedef CostScaling<Digraph> MCF; |
|
| 528 |
runMcfGeqTests<MCF>(MCF::PUSH, "COS-PR"); |
|
| 529 |
runMcfGeqTests<MCF>(MCF::AUGMENT, "COS-AR"); |
|
| 530 |
runMcfGeqTests<MCF>(MCF::PARTIAL_AUGMENT, "COS-PAR"); |
|
| 531 |
} |
|
| 532 |
|
|
| 533 |
// Test CycleCanceling |
|
| 534 |
{
|
|
| 535 |
typedef CycleCanceling<Digraph> MCF; |
|
| 536 |
runMcfGeqTests<MCF>(MCF::SIMPLE_CYCLE_CANCELING, "SCC"); |
|
| 537 |
runMcfGeqTests<MCF>(MCF::MINIMUM_MEAN_CYCLE_CANCELING, "MMCC"); |
|
| 538 |
runMcfGeqTests<MCF>(MCF::CANCEL_AND_TIGHTEN, "CAT"); |
|
| 539 |
} |
|
| 474 | 540 |
|
0 comments (0 inline)