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::*;
11 
12 use petgraph::algo::{connected_components, is_cyclic_undirected};
13 
14 #[bench]
connected_components_praust_undir_bench(bench: &mut Bencher)15 fn connected_components_praust_undir_bench(bench: &mut Bencher) {
16     let a = ungraph().praust_a();
17     let b = ungraph().praust_b();
18 
19     bench.iter(|| (connected_components(&a), connected_components(&b)));
20 }
21 
22 #[bench]
connected_components_praust_dir_bench(bench: &mut Bencher)23 fn connected_components_praust_dir_bench(bench: &mut Bencher) {
24     let a = digraph().praust_a();
25     let b = digraph().praust_b();
26 
27     bench.iter(|| (connected_components(&a), connected_components(&b)));
28 }
29 
30 #[bench]
connected_components_full_undir_bench(bench: &mut Bencher)31 fn connected_components_full_undir_bench(bench: &mut Bencher) {
32     let a = ungraph().full_a();
33     let b = ungraph().full_b();
34 
35     bench.iter(|| (connected_components(&a), connected_components(&b)));
36 }
37 
38 #[bench]
connected_components_full_dir_bench(bench: &mut Bencher)39 fn connected_components_full_dir_bench(bench: &mut Bencher) {
40     let a = digraph().full_a();
41     let b = digraph().full_b();
42 
43     bench.iter(|| (connected_components(&a), connected_components(&b)));
44 }
45 
46 #[bench]
connected_components_petersen_undir_bench(bench: &mut Bencher)47 fn connected_components_petersen_undir_bench(bench: &mut Bencher) {
48     let a = ungraph().petersen_a();
49     let b = ungraph().petersen_b();
50 
51     bench.iter(|| (connected_components(&a), connected_components(&b)));
52 }
53 
54 #[bench]
connected_components_petersen_dir_bench(bench: &mut Bencher)55 fn connected_components_petersen_dir_bench(bench: &mut Bencher) {
56     let a = digraph().petersen_a();
57     let b = digraph().petersen_b();
58 
59     bench.iter(|| (connected_components(&a), connected_components(&b)));
60 }
61 
62 #[bench]
is_cyclic_undirected_praust_undir_bench(bench: &mut Bencher)63 fn is_cyclic_undirected_praust_undir_bench(bench: &mut Bencher) {
64     let a = ungraph().praust_a();
65     let b = ungraph().praust_b();
66 
67     bench.iter(|| (is_cyclic_undirected(&a), is_cyclic_undirected(&b)));
68 }
69 
70 #[bench]
is_cyclic_undirected_praust_dir_bench(bench: &mut Bencher)71 fn is_cyclic_undirected_praust_dir_bench(bench: &mut Bencher) {
72     let a = digraph().praust_a();
73     let b = digraph().praust_b();
74 
75     bench.iter(|| (is_cyclic_undirected(&a), is_cyclic_undirected(&b)));
76 }
77 
78 #[bench]
is_cyclic_undirected_full_undir_bench(bench: &mut Bencher)79 fn is_cyclic_undirected_full_undir_bench(bench: &mut Bencher) {
80     let a = ungraph().full_a();
81     let b = ungraph().full_b();
82 
83     bench.iter(|| (is_cyclic_undirected(&a), is_cyclic_undirected(&b)));
84 }
85 
86 #[bench]
is_cyclic_undirected_full_dir_bench(bench: &mut Bencher)87 fn is_cyclic_undirected_full_dir_bench(bench: &mut Bencher) {
88     let a = digraph().full_a();
89     let b = digraph().full_b();
90 
91     bench.iter(|| (is_cyclic_undirected(&a), is_cyclic_undirected(&b)));
92 }
93 
94 #[bench]
is_cyclic_undirected_petersen_undir_bench(bench: &mut Bencher)95 fn is_cyclic_undirected_petersen_undir_bench(bench: &mut Bencher) {
96     let a = ungraph().petersen_a();
97     let b = ungraph().petersen_b();
98 
99     bench.iter(|| (is_cyclic_undirected(&a), is_cyclic_undirected(&b)));
100 }
101 
102 #[bench]
is_cyclic_undirected_petersen_dir_bench(bench: &mut Bencher)103 fn is_cyclic_undirected_petersen_dir_bench(bench: &mut Bencher) {
104     let a = digraph().petersen_a();
105     let b = digraph().petersen_b();
106 
107     bench.iter(|| (is_cyclic_undirected(&a), is_cyclic_undirected(&b)));
108 }
109