1 #![feature(test)] 2 3 extern crate petgraph; 4 extern crate test; 5 6 use test::Bencher; 7 8 #[allow(dead_code)] 9 mod common; 10 use common::{digraph, ungraph}; 11 12 use petgraph::algo::min_spanning_tree; 13 14 #[bench] min_spanning_tree_praust_undir_bench(bench: &mut Bencher)15fn min_spanning_tree_praust_undir_bench(bench: &mut Bencher) { 16 let a = ungraph().praust_a(); 17 let b = ungraph().praust_b(); 18 19 bench.iter(|| (min_spanning_tree(&a), min_spanning_tree(&b))); 20 } 21 22 #[bench] min_spanning_tree_praust_dir_bench(bench: &mut Bencher)23fn min_spanning_tree_praust_dir_bench(bench: &mut Bencher) { 24 let a = digraph().praust_a(); 25 let b = digraph().praust_b(); 26 27 bench.iter(|| (min_spanning_tree(&a), min_spanning_tree(&b))); 28 } 29 30 #[bench] min_spanning_tree_full_undir_bench(bench: &mut Bencher)31fn min_spanning_tree_full_undir_bench(bench: &mut Bencher) { 32 let a = ungraph().full_a(); 33 let b = ungraph().full_b(); 34 35 bench.iter(|| (min_spanning_tree(&a), min_spanning_tree(&b))); 36 } 37 38 #[bench] min_spanning_tree_full_dir_bench(bench: &mut Bencher)39fn min_spanning_tree_full_dir_bench(bench: &mut Bencher) { 40 let a = digraph().full_a(); 41 let b = digraph().full_b(); 42 43 bench.iter(|| (min_spanning_tree(&a), min_spanning_tree(&b))); 44 } 45 46 #[bench] min_spanning_tree_petersen_undir_bench(bench: &mut Bencher)47fn min_spanning_tree_petersen_undir_bench(bench: &mut Bencher) { 48 let a = ungraph().petersen_a(); 49 let b = ungraph().petersen_b(); 50 51 bench.iter(|| (min_spanning_tree(&a), min_spanning_tree(&b))); 52 } 53 54 #[bench] min_spanning_tree_petersen_dir_bench(bench: &mut Bencher)55fn min_spanning_tree_petersen_dir_bench(bench: &mut Bencher) { 56 let a = digraph().petersen_a(); 57 let b = digraph().petersen_b(); 58 59 bench.iter(|| (min_spanning_tree(&a), min_spanning_tree(&b))); 60 } 61