[Lemon-commits] Balazs Dezso: Fix in HaoOrlin (#264)

Lemon HG hg at lemon.cs.elte.hu
Tue Apr 21 16:33:29 CEST 2009


details:   http://lemon.cs.elte.hu/hg/lemon/rev/2ca0cdb5f366
changeset: 629:2ca0cdb5f366
user:      Balazs Dezso <deba [at] inf.elte.hu>
date:      Sat Apr 18 21:01:12 2009 +0200
description:
	Fix in HaoOrlin (#264)

diffstat:

 lemon/hao_orlin.h      |   2 ++
 test/hao_orlin_test.cc |  36 ++++++++++++------------------------
 2 files changed, 14 insertions(+), 24 deletions(-)

diffs (96 lines):

diff --git a/lemon/hao_orlin.h b/lemon/hao_orlin.h
--- a/lemon/hao_orlin.h
+++ b/lemon/hao_orlin.h
@@ -226,6 +226,7 @@
 
       for (NodeIt n(_graph); n != INVALID; ++n) {
         (*_excess)[n] = 0;
+        (*_source_set)[n] = false;
       }
 
       for (ArcIt a(_graph); a != INVALID; ++a) {
@@ -525,6 +526,7 @@
 
       for (NodeIt n(_graph); n != INVALID; ++n) {
         (*_excess)[n] = 0;
+        (*_source_set)[n] = false;
       }
 
       for (ArcIt a(_graph); a != INVALID; ++a) {
diff --git a/test/hao_orlin_test.cc b/test/hao_orlin_test.cc
--- a/test/hao_orlin_test.cc
+++ b/test/hao_orlin_test.cc
@@ -111,30 +111,24 @@
     ho.run();
     ho.minCutMap(cut);
     
-    // BUG: The cut value should be positive
-    check(ho.minCutValue() == 0, "Wrong cut value");
-    // BUG: It should work
-    //check(ho.minCutValue() == cutValue(graph, cap1, cut), "Wrong cut value");
+    check(ho.minCutValue() == 1, "Wrong cut value");
+    check(ho.minCutValue() == cutValue(graph, cap1, cut), "Wrong cut value");
   }
   {
     HaoOrlin<SmartDigraph> ho(graph, cap2);
     ho.run();
     ho.minCutMap(cut);
-    
-    // BUG: The cut value should be positive
-    check(ho.minCutValue() == 0, "Wrong cut value");
-    // BUG: It should work
-    //check(ho.minCutValue() == cutValue(graph, cap2, cut), "Wrong cut value");
+
+    check(ho.minCutValue() == 1, "Wrong cut value");
+    check(ho.minCutValue() == cutValue(graph, cap2, cut), "Wrong cut value");
   }
   {
     HaoOrlin<SmartDigraph> ho(graph, cap3);
     ho.run();
     ho.minCutMap(cut);
     
-    // BUG: The cut value should be positive
-    check(ho.minCutValue() == 0, "Wrong cut value");
-    // BUG: It should work
-    //check(ho.minCutValue() == cutValue(graph, cap3, cut), "Wrong cut value");
+    check(ho.minCutValue() == 1, "Wrong cut value");
+    check(ho.minCutValue() == cutValue(graph, cap3, cut), "Wrong cut value");
   }
   
   typedef Undirector<SmartDigraph> UGraph;
@@ -145,30 +139,24 @@
     ho.run();
     ho.minCutMap(cut);
     
-    // BUG: The cut value should be 2
-    check(ho.minCutValue() == 1, "Wrong cut value");
-    // BUG: It should work
-    //check(ho.minCutValue() == cutValue(ugraph, cap1, cut), "Wrong cut value");
+    check(ho.minCutValue() == 2, "Wrong cut value");
+    check(ho.minCutValue() == cutValue(ugraph, cap1, cut), "Wrong cut value");
   }
   {
     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap2);
     ho.run();
     ho.minCutMap(cut);
     
-    // TODO: Check this cut value
-    check(ho.minCutValue() == 4, "Wrong cut value");
-    // BUG: It should work
-    //check(ho.minCutValue() == cutValue(ugraph, cap2, cut), "Wrong cut value");
+    check(ho.minCutValue() == 5, "Wrong cut value");
+    check(ho.minCutValue() == cutValue(ugraph, cap2, cut), "Wrong cut value");
   }
   {
     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap3);
     ho.run();
     ho.minCutMap(cut);
     
-    // TODO: Check this cut value
     check(ho.minCutValue() == 5, "Wrong cut value");
-    // BUG: It should work
-    //check(ho.minCutValue() == cutValue(ugraph, cap3, cut), "Wrong cut value");
+    check(ho.minCutValue() == cutValue(ugraph, cap3, cut), "Wrong cut value");
   }
 
   return 0;



More information about the Lemon-commits mailing list