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