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)10 fn 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