Changeset 940:50a153b08f07 in lemon-0.x for src/test
- Timestamp:
- 10/07/04 19:21:27 (21 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1282
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/test/preflow_test.cc
r921 r940 40 40 typedef Preflow<Graph, int, CapMap, FlowMap> PType; 41 41 42 Graph G;42 Graph g; 43 43 Node n; 44 44 CapMap cap; … … 46 46 CutMap cut; 47 47 48 PType preflow_test( G,n,n,cap,flow);48 PType preflow_test(g,n,n,cap,flow); 49 49 50 50 preflow_test.run(); … … 63 63 } 64 64 65 int cut_value ( SmartGraph& G, SmartGraph::NodeMap<bool>& cut,65 int cut_value ( SmartGraph& g, SmartGraph::NodeMap<bool>& cut, 66 66 SmartGraph::EdgeMap<int>& cap) { 67 67 68 68 int c=0; 69 for(SmartGraph::EdgeIt e( G); e!=INVALID; ++e) {70 if (cut[ G.tail(e)] && !cut[G.head(e)]) c+=cap[e];69 for(SmartGraph::EdgeIt e(g); e!=INVALID; ++e) { 70 if (cut[g.tail(e)] && !cut[g.head(e)]) c+=cap[e]; 71 71 } 72 72 return c; … … 98 98 check(file, "Input file '" << f_name << "' not found."); 99 99 100 Graph G;100 Graph g; 101 101 Node s, t; 102 CapMap cap( G);103 readDimacs(file, G, cap, s, t);104 105 FlowMap flow( G,0);102 CapMap cap(g); 103 readDimacs(file, g, cap, s, t); 104 105 FlowMap flow(g,0); 106 106 107 107 108 108 109 PType preflow_test( G, s, t, cap, flow);109 PType preflow_test(g, s, t, cap, flow); 110 110 preflow_test.run(PType::ZERO_FLOW); 111 111 112 CutMap min cut(G,false);113 preflow_test.minCut(min cut);114 int min_cut_value=cut_value( G,mincut,cap);115 116 CutMap min mincut(G,false);117 preflow_test.minMinCut(min mincut);118 int min_min_cut_value=cut_value( G,minmincut,cap);119 120 CutMap max mincut(G,false);121 preflow_test.maxMinCut(max mincut);122 int max_min_cut_value=cut_value( G,maxmincut,cap);112 CutMap min_cut(g,false); 113 preflow_test.minCut(min_cut); 114 int min_cut_value=cut_value(g,min_cut,cap); 115 116 CutMap min_min_cut(g,false); 117 preflow_test.minMinCut(min_min_cut); 118 int min_min_cut_value=cut_value(g,min_min_cut,cap); 119 120 CutMap max_min_cut(g,false); 121 preflow_test.maxMinCut(max_min_cut); 122 int max_min_cut_value=cut_value(g,max_min_cut,cap); 123 123 124 124 check(preflow_test.flowValue() == min_cut_value && … … 131 131 132 132 133 for(EdgeIt e( G); e!=INVALID; ++e) cap[e]=2*cap[e];133 for(EdgeIt e(g); e!=INVALID; ++e) cap[e]=2*cap[e]; 134 134 preflow_test.setCap(cap); 135 135 136 136 preflow_test.phase1(PType::PRE_FLOW); 137 137 138 CutMap min cut1(G,false);139 preflow_test.minCut(min cut1);140 min_cut_value=cut_value( G,mincut1,cap);138 CutMap min_cut1(g,false); 139 preflow_test.minCut(min_cut1); 140 min_cut_value=cut_value(g,min_cut1,cap); 141 141 142 142 check(preflow_test.flowValue() == min_cut_value && … … 146 146 preflow_test.phase2(); 147 147 148 CutMap min cut2(G,false);149 preflow_test.minCut(min cut2);150 min_cut_value=cut_value( G,mincut2,cap);151 152 CutMap min mincut2(G,false);153 preflow_test.minMinCut(min mincut2);154 min_min_cut_value=cut_value( G,minmincut2,cap);148 CutMap min_cut2(g,false); 149 preflow_test.minCut(min_cut2); 150 min_cut_value=cut_value(g,min_cut2,cap); 151 152 CutMap min_min_cut2(g,false); 153 preflow_test.minMinCut(min_min_cut2); 154 min_min_cut_value=cut_value(g,min_min_cut2,cap); 155 155 156 preflow_test.maxMinCut(max mincut);157 max_min_cut_value=cut_value( G,maxmincut,cap);156 preflow_test.maxMinCut(max_min_cut); 157 max_min_cut_value=cut_value(g,max_min_cut,cap); 158 158 159 159 check(preflow_test.flowValue() == min_cut_value && … … 165 165 166 166 167 EdgeIt e( G);167 EdgeIt e(g); 168 168 for( int i=1; i==10; ++i ) { 169 169 flow.set(e,0); … … 173 173 preflow_test.setFlow(flow); 174 174 175 NodeIt tmp1( G,s);175 NodeIt tmp1(g,s); 176 176 ++tmp1; 177 177 if ( tmp1 != INVALID ) s=tmp1; 178 178 179 NodeIt tmp2( G,t);179 NodeIt tmp2(g,t); 180 180 ++tmp2; 181 181 if ( tmp2 != INVALID ) t=tmp2; … … 186 186 preflow_test.run(); 187 187 188 CutMap min cut3(G,false);189 preflow_test.minCut(min cut3);190 min_cut_value=cut_value( G,mincut3,cap);191 192 CutMap min mincut3(G,false);193 preflow_test.minMinCut(min mincut3);194 min_min_cut_value=cut_value( G,minmincut3,cap);195 196 preflow_test.maxMinCut(max mincut);197 max_min_cut_value=cut_value( G,maxmincut,cap);188 CutMap min_cut3(g,false); 189 preflow_test.minCut(min_cut3); 190 min_cut_value=cut_value(g,min_cut3,cap); 191 192 CutMap min_min_cut3(g,false); 193 preflow_test.minMinCut(min_min_cut3); 194 min_min_cut_value=cut_value(g,min_min_cut3,cap); 195 196 preflow_test.maxMinCut(max_min_cut); 197 max_min_cut_value=cut_value(g,max_min_cut,cap); 198 198 199 199 check(preflow_test.flowValue() == min_cut_value &&
Note: See TracChangeset
for help on using the changeset viewer.