]> git.proxmox.com Git - rustc.git/blob - vendor/petgraph/benches/stable_graph.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / vendor / petgraph / benches / stable_graph.rs
1 #![feature(test)]
2
3 extern crate petgraph;
4 extern crate test;
5
6 use petgraph::prelude::*;
7 use test::Bencher;
8
9 #[allow(dead_code)]
10 mod common;
11 use common::*;
12
13 use petgraph::stable_graph::node_index;
14
15 #[bench]
16 fn full_edges_default(bench: &mut Bencher) {
17 let a = stable_digraph().full_a();
18 bench.iter(|| a.edges(node_index(1)).count())
19 }
20
21 #[bench]
22 fn full_edges_out(bench: &mut Bencher) {
23 let a = stable_digraph().full_a();
24 bench.iter(|| a.edges_directed(node_index(1), Outgoing).count())
25 }
26
27 #[bench]
28 fn full_edges_in(bench: &mut Bencher) {
29 let a = stable_digraph().full_a();
30 bench.iter(|| a.edges_directed(node_index(1), Incoming).count())
31 }
32
33 #[bench]
34 fn neighbors_default(bench: &mut Bencher) {
35 let a = stable_digraph().full_a();
36 bench.iter(|| a.neighbors(node_index(1)).count())
37 }
38
39 #[bench]
40 fn neighbors_out(bench: &mut Bencher) {
41 let a = stable_digraph().full_a();
42 bench.iter(|| a.neighbors_directed(node_index(1), Outgoing).count())
43 }
44
45 #[bench]
46 fn neighbors_in(bench: &mut Bencher) {
47 let a = stable_digraph().full_a();
48 bench.iter(|| a.neighbors_directed(node_index(1), Incoming).count())
49 }
50
51 #[bench]
52 fn sccs_stable_graph(bench: &mut Bencher) {
53 let a = stable_digraph().bigger();
54 bench.iter(|| petgraph::algo::kosaraju_scc(&a));
55 }
56
57 #[bench]
58 fn sccs_graph(bench: &mut Bencher) {
59 let a = digraph().bigger();
60 bench.iter(|| petgraph::algo::kosaraju_scc(&a));
61 }
62
63 #[bench]
64 fn stable_graph_map(bench: &mut Bencher) {
65 let a = stable_digraph().bigger();
66 bench.iter(|| a.map(|i, _| i, |i, _| i));
67 }
68
69 #[bench]
70 fn graph_map(bench: &mut Bencher) {
71 let a = digraph().bigger();
72 bench.iter(|| a.map(|i, _| i, |i, _| i));
73 }
74
75 #[bench]
76 fn stable_graph_retain_nodes(bench: &mut Bencher) {
77 let mut a = stable_digraph().bigger();
78 bench.iter(|| a.retain_nodes(|_gr, i| (i.index() + 1) % 3700 != 0));
79 }
80
81 #[bench]
82 fn stable_graph_retain_edges(bench: &mut Bencher) {
83 let mut a = stable_digraph().bigger();
84 bench.iter(|| a.retain_edges(|_gr, i| (i.index() + 1) % 3700 != 0));
85 }