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)15 fn 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)23 fn 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)31 fn 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)39 fn 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)47 fn 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)55 fn 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