Changeset 1169:8db773f19586 in lemon-main for test
- Timestamp:
- 03/22/18 18:56:47 (7 years ago)
- Branch:
- default
- Children:
- 1172:0fdf84c79bc1, 1176:2e0c2c25d63e
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
test/max_flow_test.cc
r1168 r1169 67 67 "target 8\n"; 68 68 69 char test_lgf_float[] = 70 "@nodes\n" 71 "label\n" 72 "0\n" 73 "1\n" 74 "2\n" 75 "3\n" 76 "4\n" 77 "5\n" 78 "6\n" 79 "7\n" 80 "8\n" 81 "9\n" 82 "@arcs\n" 83 " capacity\n" 84 "0 1 0.1\n" 85 "0 2 0.1\n" 86 "0 3 0.1\n" 87 "1 4 0.1\n" 88 "2 4 0.1\n" 89 "3 4 0.1\n" 90 "4 5 0.3\n" 91 "5 6 0.1\n" 92 "5 7 0.1\n" 93 "5 8 0.1\n" 94 "6 9 0.1\n" 95 "7 9 0.1\n" 96 "8 9 0.1\n" 97 "@attributes\n" 98 "source 0\n" 99 "target 9\n"; 100 69 101 // Checks the general interface of a max flow algorithm 70 102 template <typename GR, typename CAP> … … 259 291 CapMap cap(g); 260 292 std::istringstream input(input_lgf); 261 DigraphReader<Digraph>(g, input)293 DigraphReader<Digraph>(g, input) 262 294 .arcMap("capacity", cap) 263 .node("source", s)264 .node("target", t)295 .node("source", s) 296 .node("target", t) 265 297 .run(); 266 298 … … 281 313 282 314 FlowMap flow(g); 283 for (ArcIt e(g); e != INVALID; ++e) flow[e] = max_flow.flowMap()[e];284 for (ArcIt e(g); e != INVALID; ++e) cap[e] = 2* cap[e];315 for (ArcIt e(g); e != INVALID; ++e) flow[e] = 13 * max_flow.flowMap()[e]; 316 for (ArcIt e(g); e != INVALID; ++e) cap[e] = 17 * cap[e]; 285 317 max_flow.init(flow); 286 318 … … 291 323 min_cut_value = cutValue(g, min_cut1, cap); 292 324 293 check(!tol.different( 2* expected, max_flow.flowValue()),325 check(!tol.different(17 * expected, max_flow.flowValue()), 294 326 "Incorrect max flow value."); 295 check(!tol.different( 2* expected, min_cut_value),327 check(!tol.different(17 * expected, min_cut_value), 296 328 "Incorrect min cut value."); 297 329 … … 305 337 min_cut_value = cutValue(g, min_cut2, cap); 306 338 307 check(!tol.different( 2* expected, max_flow.flowValue()),339 check(!tol.different(17 * expected, max_flow.flowValue()), 308 340 "Incorrect max flow value."); 309 check(!tol.different( 2* expected, min_cut_value),341 check(!tol.different(17 * expected, min_cut_value), 310 342 "Incorrect min cut value."); 311 343 … … 383 415 typedef Preflow<SmartDigraph, SmartDigraph::ArcMap<float> > PType2; 384 416 typedef Preflow<SmartDigraph, SmartDigraph::ArcMap<double> > PType3; 417 385 418 checkMaxFlowAlg<PType1, PreflowStartFunctions<PType1> >(test_lgf, 13); 386 419 checkMaxFlowAlg<PType2, PreflowStartFunctions<PType2> >(test_lgf, 13); 387 420 checkMaxFlowAlg<PType3, PreflowStartFunctions<PType3> >(test_lgf, 13); 421 422 checkMaxFlowAlg<PType2, PreflowStartFunctions<PType2> >(test_lgf_float, 0.3); 423 checkMaxFlowAlg<PType3, PreflowStartFunctions<PType3> >(test_lgf_float, 0.3); 388 424 389 425 checkInitPreflow(); … … 393 429 typedef EdmondsKarp<SmartDigraph, SmartDigraph::ArcMap<float> > EKType2; 394 430 typedef EdmondsKarp<SmartDigraph, SmartDigraph::ArcMap<double> > EKType3; 431 395 432 checkMaxFlowAlg<EKType1, GeneralStartFunctions<EKType1> >(test_lgf, 13); 396 433 checkMaxFlowAlg<EKType2, GeneralStartFunctions<EKType2> >(test_lgf, 13); 397 434 checkMaxFlowAlg<EKType3, GeneralStartFunctions<EKType3> >(test_lgf, 13); 398 435 436 checkMaxFlowAlg<EKType2, GeneralStartFunctions<EKType2> >(test_lgf_float, 0.3); 437 checkMaxFlowAlg<EKType3, GeneralStartFunctions<EKType3> >(test_lgf_float, 0.3); 438 399 439 return 0; 400 440 }
Note: See TracChangeset
for help on using the changeset viewer.