# HG changeset patch
# User Balazs Dezso <deba@inf.elte.hu>
# Date 1240081272 -7200
# Node ID 2ca0cdb5f366b786af35f7a426cedf3e7268b0cb
# Parent 293551ad254f3014636873178d16cdd084d37ad7
Fix in HaoOrlin (#264)
diff -r 293551ad254f -r 2ca0cdb5f366 lemon/hao_orlin.h
|
a
|
b
|
|
| 226 | 226 | |
| 227 | 227 | for (NodeIt n(_graph); n != INVALID; ++n) { |
| 228 | 228 | (*_excess)[n] = 0; |
| | 229 | (*_source_set)[n] = false; |
| 229 | 230 | } |
| 230 | 231 | |
| 231 | 232 | for (ArcIt a(_graph); a != INVALID; ++a) { |
| … |
… |
|
| 525 | 526 | |
| 526 | 527 | for (NodeIt n(_graph); n != INVALID; ++n) { |
| 527 | 528 | (*_excess)[n] = 0; |
| | 529 | (*_source_set)[n] = false; |
| 528 | 530 | } |
| 529 | 531 | |
| 530 | 532 | for (ArcIt a(_graph); a != INVALID; ++a) { |
diff -r 293551ad254f -r 2ca0cdb5f366 test/hao_orlin_test.cc
|
a
|
b
|
|
| 111 | 111 | ho.run(); |
| 112 | 112 | ho.minCutMap(cut); |
| 113 | 113 | |
| 114 | | // BUG: The cut value should be positive |
| 115 | | check(ho.minCutValue() == 0, "Wrong cut value"); |
| 116 | | // BUG: It should work |
| 117 | | //check(ho.minCutValue() == cutValue(graph, cap1, cut), "Wrong cut value"); |
| | 114 | check(ho.minCutValue() == 1, "Wrong cut value"); |
| | 115 | check(ho.minCutValue() == cutValue(graph, cap1, cut), "Wrong cut value"); |
| 118 | 116 | } |
| 119 | 117 | { |
| 120 | 118 | HaoOrlin<SmartDigraph> ho(graph, cap2); |
| 121 | 119 | ho.run(); |
| 122 | 120 | ho.minCutMap(cut); |
| 123 | | |
| 124 | | // BUG: The cut value should be positive |
| 125 | | check(ho.minCutValue() == 0, "Wrong cut value"); |
| 126 | | // BUG: It should work |
| 127 | | //check(ho.minCutValue() == cutValue(graph, cap2, cut), "Wrong cut value"); |
| | 121 | |
| | 122 | check(ho.minCutValue() == 1, "Wrong cut value"); |
| | 123 | check(ho.minCutValue() == cutValue(graph, cap2, cut), "Wrong cut value"); |
| 128 | 124 | } |
| 129 | 125 | { |
| 130 | 126 | HaoOrlin<SmartDigraph> ho(graph, cap3); |
| 131 | 127 | ho.run(); |
| 132 | 128 | ho.minCutMap(cut); |
| 133 | 129 | |
| 134 | | // BUG: The cut value should be positive |
| 135 | | check(ho.minCutValue() == 0, "Wrong cut value"); |
| 136 | | // BUG: It should work |
| 137 | | //check(ho.minCutValue() == cutValue(graph, cap3, cut), "Wrong cut value"); |
| | 130 | check(ho.minCutValue() == 1, "Wrong cut value"); |
| | 131 | check(ho.minCutValue() == cutValue(graph, cap3, cut), "Wrong cut value"); |
| 138 | 132 | } |
| 139 | 133 | |
| 140 | 134 | typedef Undirector<SmartDigraph> UGraph; |
| … |
… |
|
| 145 | 139 | ho.run(); |
| 146 | 140 | ho.minCutMap(cut); |
| 147 | 141 | |
| 148 | | // BUG: The cut value should be 2 |
| 149 | | check(ho.minCutValue() == 1, "Wrong cut value"); |
| 150 | | // BUG: It should work |
| 151 | | //check(ho.minCutValue() == cutValue(ugraph, cap1, cut), "Wrong cut value"); |
| | 142 | check(ho.minCutValue() == 2, "Wrong cut value"); |
| | 143 | check(ho.minCutValue() == cutValue(ugraph, cap1, cut), "Wrong cut value"); |
| 152 | 144 | } |
| 153 | 145 | { |
| 154 | 146 | HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap2); |
| 155 | 147 | ho.run(); |
| 156 | 148 | ho.minCutMap(cut); |
| 157 | 149 | |
| 158 | | // TODO: Check this cut value |
| 159 | | check(ho.minCutValue() == 4, "Wrong cut value"); |
| 160 | | // BUG: It should work |
| 161 | | //check(ho.minCutValue() == cutValue(ugraph, cap2, cut), "Wrong cut value"); |
| | 150 | check(ho.minCutValue() == 5, "Wrong cut value"); |
| | 151 | check(ho.minCutValue() == cutValue(ugraph, cap2, cut), "Wrong cut value"); |
| 162 | 152 | } |
| 163 | 153 | { |
| 164 | 154 | HaoOrlin<UGraph, SmartDigraph::ArcMap<int> > ho(ugraph, cap3); |
| 165 | 155 | ho.run(); |
| 166 | 156 | ho.minCutMap(cut); |
| 167 | 157 | |
| 168 | | // TODO: Check this cut value |
| 169 | 158 | check(ho.minCutValue() == 5, "Wrong cut value"); |
| 170 | | // BUG: It should work |
| 171 | | //check(ho.minCutValue() == cutValue(ugraph, cap3, cut), "Wrong cut value"); |
| | 159 | check(ho.minCutValue() == cutValue(ugraph, cap3, cut), "Wrong cut value"); |
| 172 | 160 | } |
| 173 | 161 | |
| 174 | 162 | return 0; |