25 lines
657 B
Rust
25 lines
657 B
Rust
#![feature(test)]
|
|
extern crate petgraph;
|
|
extern crate test;
|
|
|
|
use petgraph::algo::ford_fulkerson;
|
|
use petgraph::prelude::{Graph, NodeIndex};
|
|
use test::Bencher;
|
|
|
|
#[bench]
|
|
fn ford_fulkerson_bench(bench: &mut Bencher) {
|
|
static NODE_COUNT: usize = 1_000;
|
|
let mut g: Graph<usize, usize> = Graph::new();
|
|
let nodes: Vec<NodeIndex<_>> = (0..NODE_COUNT).map(|i| g.add_node(i)).collect();
|
|
for i in 0..NODE_COUNT - 1 {
|
|
g.add_edge(nodes[i], nodes[i + 1], 1);
|
|
}
|
|
bench.iter(|| {
|
|
let _flow = ford_fulkerson(
|
|
&g,
|
|
NodeIndex::from(0),
|
|
NodeIndex::from(g.node_count() as u32 - 1),
|
|
);
|
|
});
|
|
}
|