1 #![feature(test)] 2 extern crate petgraph; 3 extern crate test; 4 5 use petgraph::algo::ford_fulkerson; 6 use petgraph::prelude::{Graph, NodeIndex}; 7 use test::Bencher; 8 9 #[bench] ford_fulkerson_bench(bench: &mut Bencher)10fn ford_fulkerson_bench(bench: &mut Bencher) { 11 static NODE_COUNT: usize = 1_000; 12 let mut g: Graph<usize, usize> = Graph::new(); 13 let nodes: Vec<NodeIndex<_>> = (0..NODE_COUNT).map(|i| g.add_node(i)).collect(); 14 for i in 0..NODE_COUNT - 1 { 15 g.add_edge(nodes[i], nodes[i + 1], 1); 16 } 17 bench.iter(|| { 18 let _flow = ford_fulkerson( 19 &g, 20 NodeIndex::from(0), 21 NodeIndex::from(g.node_count() as u32 - 1), 22 ); 23 }); 24 } 25