summaryrefslogtreecommitdiffstats
path: root/vendor/petgraph/benches/ograph.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /vendor/petgraph/benches/ograph.rs
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/petgraph/benches/ograph.rs')
-rw-r--r--vendor/petgraph/benches/ograph.rs52
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/petgraph/benches/ograph.rs b/vendor/petgraph/benches/ograph.rs
new file mode 100644
index 000000000..d3f29869c
--- /dev/null
+++ b/vendor/petgraph/benches/ograph.rs
@@ -0,0 +1,52 @@
+#![feature(test)]
+
+extern crate petgraph;
+extern crate test;
+
+use petgraph::graph::Graph;
+
+#[bench]
+fn bench_inser(b: &mut test::Bencher) {
+ let mut og = Graph::new();
+ let fst = og.add_node(0i32);
+ for x in 1..125 {
+ let n = og.add_node(x);
+ og.add_edge(fst, n, ());
+ }
+ b.iter(|| og.add_node(1))
+}
+
+#[bench]
+fn bench_add_edge(b: &mut test::Bencher) {
+ let mut og = Graph::new();
+ for _ in 0..100 {
+ og.add_node(());
+ }
+
+ b.iter(|| {
+ for (a, b) in og.node_indices().zip(og.node_indices().skip(1)) {
+ og.add_edge(a, b, ());
+ }
+ og.clear_edges();
+ })
+}
+
+#[bench]
+fn bench_remove(b: &mut test::Bencher) {
+ // removal is very slow in a big graph.
+ // and this one doesn't even have many nodes.
+ let mut og = Graph::new();
+ let fst = og.add_node(0i32);
+ let mut prev = fst;
+ for x in 1..1250 {
+ let n = og.add_node(x);
+ og.add_edge(prev, n, ());
+ prev = n;
+ }
+ //println!("{}", og);
+ b.iter(|| {
+ for _ in 0..100 {
+ og.remove_node(fst);
+ }
+ })
+}