109   { | 
   109   { | 
   110     HaoOrlin<SmartDigraph> ho(graph, cap1);  | 
   110     HaoOrlin<SmartDigraph> ho(graph, cap1);  | 
   111     ho.run();  | 
   111     ho.run();  | 
   112     ho.minCutMap(cut);  | 
   112     ho.minCutMap(cut);  | 
   113       | 
   113       | 
   114     // BUG: The cut value should be positive  | 
   114     check(ho.minCutValue() == 1, "Wrong cut value");  | 
   115     check(ho.minCutValue() == 0, "Wrong cut value");  | 
   115     check(ho.minCutValue() == cutValue(graph, cap1, cut), "Wrong cut value");  | 
   116     // BUG: It should work  | 
         | 
   117     //check(ho.minCutValue() == cutValue(graph, cap1, cut), "Wrong cut value");  | 
         | 
   118   }  | 
   116   }  | 
   119   { | 
   117   { | 
   120     HaoOrlin<SmartDigraph> ho(graph, cap2);  | 
   118     HaoOrlin<SmartDigraph> ho(graph, cap2);  | 
   121     ho.run();  | 
   119     ho.run();  | 
   122     ho.minCutMap(cut);  | 
   120     ho.minCutMap(cut);  | 
   123       | 
   121   | 
   124     // BUG: The cut value should be positive  | 
   122     check(ho.minCutValue() == 1, "Wrong cut value");  | 
   125     check(ho.minCutValue() == 0, "Wrong cut value");  | 
   123     check(ho.minCutValue() == cutValue(graph, cap2, cut), "Wrong cut value");  | 
   126     // BUG: It should work  | 
         | 
   127     //check(ho.minCutValue() == cutValue(graph, cap2, cut), "Wrong cut value");  | 
         | 
   128   }  | 
   124   }  | 
   129   { | 
   125   { | 
   130     HaoOrlin<SmartDigraph> ho(graph, cap3);  | 
   126     HaoOrlin<SmartDigraph> ho(graph, cap3);  | 
   131     ho.run();  | 
   127     ho.run();  | 
   132     ho.minCutMap(cut);  | 
   128     ho.minCutMap(cut);  | 
   133       | 
   129       | 
   134     // BUG: The cut value should be positive  | 
   130     check(ho.minCutValue() == 1, "Wrong cut value");  | 
   135     check(ho.minCutValue() == 0, "Wrong cut value");  | 
   131     check(ho.minCutValue() == cutValue(graph, cap3, cut), "Wrong cut value");  | 
   136     // BUG: It should work  | 
         | 
   137     //check(ho.minCutValue() == cutValue(graph, cap3, cut), "Wrong cut value");  | 
         | 
   138   }  | 
   132   }  | 
   139     | 
   133     | 
   140   typedef Undirector<SmartDigraph> UGraph;  | 
   134   typedef Undirector<SmartDigraph> UGraph;  | 
   141   UGraph ugraph(graph);  | 
   135   UGraph ugraph(graph);  | 
   142     | 
   136     | 
   143   { | 
   137   { | 
   144     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap1);  | 
   138     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap1);  | 
   145     ho.run();  | 
   139     ho.run();  | 
   146     ho.minCutMap(cut);  | 
   140     ho.minCutMap(cut);  | 
   147       | 
   141       | 
   148     // BUG: The cut value should be 2  | 
   142     check(ho.minCutValue() == 2, "Wrong cut value");  | 
   149     check(ho.minCutValue() == 1, "Wrong cut value");  | 
   143     check(ho.minCutValue() == cutValue(ugraph, cap1, cut), "Wrong cut value");  | 
   150     // BUG: It should work  | 
         | 
   151     //check(ho.minCutValue() == cutValue(ugraph, cap1, cut), "Wrong cut value");  | 
         | 
   152   }  | 
   144   }  | 
   153   { | 
   145   { | 
   154     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap2);  | 
   146     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap2);  | 
   155     ho.run();  | 
   147     ho.run();  | 
   156     ho.minCutMap(cut);  | 
   148     ho.minCutMap(cut);  | 
   157       | 
   149       | 
   158     // TODO: Check this cut value  | 
   150     check(ho.minCutValue() == 5, "Wrong cut value");  | 
   159     check(ho.minCutValue() == 4, "Wrong cut value");  | 
   151     check(ho.minCutValue() == cutValue(ugraph, cap2, cut), "Wrong cut value");  | 
   160     // BUG: It should work  | 
         | 
   161     //check(ho.minCutValue() == cutValue(ugraph, cap2, cut), "Wrong cut value");  | 
         | 
   162   }  | 
   152   }  | 
   163   { | 
   153   { | 
   164     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap3);  | 
   154     HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap3);  | 
   165     ho.run();  | 
   155     ho.run();  | 
   166     ho.minCutMap(cut);  | 
   156     ho.minCutMap(cut);  | 
   167       | 
   157       | 
   168     // TODO: Check this cut value  | 
         | 
   169     check(ho.minCutValue() == 5, "Wrong cut value");  | 
   158     check(ho.minCutValue() == 5, "Wrong cut value");  | 
   170     // BUG: It should work  | 
   159     check(ho.minCutValue() == cutValue(ugraph, cap3, cut), "Wrong cut value");  | 
   171     //check(ho.minCutValue() == cutValue(ugraph, cap3, cut), "Wrong cut value");  | 
         | 
   172   }  | 
   160   }  | 
   173   | 
   161   | 
   174   return 0;  | 
   162   return 0;  | 
   175 }  | 
   163 }  |