1.1 --- a/test/suurballe_test.cc Fri Oct 16 09:35:46 2009 +0200
1.2 +++ b/test/suurballe_test.cc Tue Mar 02 10:27:47 2010 +0100
1.3 @@ -205,9 +205,11 @@
1.4 node("target", t).
1.5 run();
1.6
1.7 - // Find 2 paths
1.8 + // Check run()
1.9 {
1.10 Suurballe<ListDigraph> suurballe(digraph, length);
1.11 +
1.12 + // Find 2 paths
1.13 check(suurballe.run(s, t) == 2, "Wrong number of paths");
1.14 check(checkFlow(digraph, suurballe.flowMap(), s, t, 2),
1.15 "The flow is not feasible");
1.16 @@ -217,11 +219,8 @@
1.17 "Wrong potentials");
1.18 for (int i = 0; i < suurballe.pathNum(); ++i)
1.19 check(checkPath(digraph, suurballe.path(i), s, t), "Wrong path");
1.20 - }
1.21 -
1.22 - // Find 3 paths
1.23 - {
1.24 - Suurballe<ListDigraph> suurballe(digraph, length);
1.25 +
1.26 + // Find 3 paths
1.27 check(suurballe.run(s, t, 3) == 3, "Wrong number of paths");
1.28 check(checkFlow(digraph, suurballe.flowMap(), s, t, 3),
1.29 "The flow is not feasible");
1.30 @@ -231,11 +230,8 @@
1.31 "Wrong potentials");
1.32 for (int i = 0; i < suurballe.pathNum(); ++i)
1.33 check(checkPath(digraph, suurballe.path(i), s, t), "Wrong path");
1.34 - }
1.35 -
1.36 - // Find 5 paths (only 3 can be found)
1.37 - {
1.38 - Suurballe<ListDigraph> suurballe(digraph, length);
1.39 +
1.40 + // Find 5 paths (only 3 can be found)
1.41 check(suurballe.run(s, t, 5) == 3, "Wrong number of paths");
1.42 check(checkFlow(digraph, suurballe.flowMap(), s, t, 3),
1.43 "The flow is not feasible");
1.44 @@ -246,6 +242,24 @@
1.45 for (int i = 0; i < suurballe.pathNum(); ++i)
1.46 check(checkPath(digraph, suurballe.path(i), s, t), "Wrong path");
1.47 }
1.48 +
1.49 + // Check fullInit() + start()
1.50 + {
1.51 + Suurballe<ListDigraph> suurballe(digraph, length);
1.52 + suurballe.fullInit(s);
1.53 +
1.54 + // Find 2 paths
1.55 + check(suurballe.start(t) == 2, "Wrong number of paths");
1.56 + check(suurballe.totalLength() == 510, "The flow is not optimal");
1.57 +
1.58 + // Find 3 paths
1.59 + check(suurballe.start(t, 3) == 3, "Wrong number of paths");
1.60 + check(suurballe.totalLength() == 1040, "The flow is not optimal");
1.61 +
1.62 + // Find 5 paths (only 3 can be found)
1.63 + check(suurballe.start(t, 5) == 3, "Wrong number of paths");
1.64 + check(suurballe.totalLength() == 1040, "The flow is not optimal");
1.65 + }
1.66
1.67 return 0;
1.68 }