summaryrefslogtreecommitdiff
path: root/vendor/petgraph-0.6.5/benches/graphmap.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/petgraph-0.6.5/benches/graphmap.rs')
-rw-r--r--vendor/petgraph-0.6.5/benches/graphmap.rs94
1 files changed, 0 insertions, 94 deletions
diff --git a/vendor/petgraph-0.6.5/benches/graphmap.rs b/vendor/petgraph-0.6.5/benches/graphmap.rs
deleted file mode 100644
index d9f7c1a0..00000000
--- a/vendor/petgraph-0.6.5/benches/graphmap.rs
+++ /dev/null
@@ -1,94 +0,0 @@
-#![feature(test)]
-#![cfg(feature = "rayon")]
-
-extern crate petgraph;
-extern crate test;
-
-use petgraph::prelude::*;
-use rayon::iter::ParallelIterator;
-use std::hash::BuildHasher;
-use test::Bencher;
-
-#[derive(Clone, Eq, Hash, Ord, PartialEq, PartialOrd)]
-struct MyStruct {
- u: String,
- v: String,
- w: String,
-}
-
-fn test_nodes() -> Vec<MyStruct> {
- let mut nodes = vec![];
- for i in 0..2500 {
- nodes.push(MyStruct {
- u: format!("X {}", i),
- v: format!("Y {} Y", i),
- w: format!("{}Z", i),
- });
- }
-
- nodes
-}
-
-fn test_graph<H: BuildHasher + Default>(
- data: &Vec<MyStruct>,
-) -> GraphMap<&MyStruct, usize, Directed, H> {
- let mut gr = GraphMap::new();
-
- for i in 0..2500 {
- gr.add_node(&data[i]);
- }
-
- for i in 0..1_000 {
- for j in 999..2000 {
- gr.add_edge(&data[i], &data[j], i * j);
- }
- }
-
- gr
-}
-
-macro_rules! test_case_with_hasher {
- ($name:ident, $hasher:path) => {
- #[bench]
- fn $name(bench: &mut Bencher) {
- let data = test_nodes();
- let gr = test_graph::<$hasher>(&data);
- bench.iter(|| {
- let mut sources = vec![];
- for n in gr.nodes() {
- for (src, _, e) in gr.edges_directed(n, Direction::Outgoing) {
- if *e == 500 {
- sources.push(src.clone());
- }
- }
- }
- });
- }
- };
-}
-
-test_case_with_hasher!(graphmap_serial_bench, std::hash::RandomState);
-test_case_with_hasher!(graphmap_serial_bench_fxhash, fxhash::FxBuildHasher);
-test_case_with_hasher!(graphmap_serial_bench_ahash, ahash::RandomState);
-
-#[bench]
-fn graphmap_parallel_bench(bench: &mut Bencher) {
- let data = test_nodes();
- let gr = test_graph::<std::hash::RandomState>(&data);
- bench.iter(|| {
- let sources: Vec<MyStruct> = gr
- .par_nodes()
- .map(|n| {
- let mut sources = vec![];
- for (src, _, e) in gr.edges_directed(n, Direction::Outgoing) {
- if *e == 500 {
- sources.push(src.clone());
- }
- }
-
- sources
- })
- .flatten()
- .collect();
- });
-}