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 } |