From ea15a22b8460d1ee4d96b81193c947640a6d1162 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 18 Jun 2021 21:40:28 +0100 Subject: tests: Move bindings microbenchmark to an integration test Signed-off-by: Daniel Silverstone --- src/bin/bindings-ubm.rs | 54 ------------------------------------------------ tests/bindings-ubm.rs | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 54 deletions(-) delete mode 100644 src/bin/bindings-ubm.rs create mode 100644 tests/bindings-ubm.rs diff --git a/src/bin/bindings-ubm.rs b/src/bin/bindings-ubm.rs deleted file mode 100644 index dd6f98f..0000000 --- a/src/bin/bindings-ubm.rs +++ /dev/null @@ -1,54 +0,0 @@ -// A micro-benchmark for the Bindings struct. -// -// The goal is to see how it deals with looking up a binding when -// there are a large number of them. - -use regex::RegexBuilder; -use std::collections::HashMap; -use std::time::SystemTime; -use subplot::{Binding, Bindings, ScenarioStep, StepKind}; - -const N: i32 = 1000; - -fn main() { - let time = SystemTime::now(); - - let mut texts = vec![]; - for i in 0..N { - texts.push(format!("step {}", i)); - } - let texted = time.elapsed().unwrap(); - - let mut re = vec![]; - for t in texts.iter() { - re.push(( - t, - RegexBuilder::new(&format!("^{}$", t)) - .case_insensitive(false) - .build() - .unwrap(), - )); - } - let regexed = time.elapsed().unwrap(); - - let mut toadd = vec![]; - for t in texts.iter() { - toadd.push(Binding::new(StepKind::Given, t, "func", None, false, HashMap::new()).unwrap()); - } - let created = time.elapsed().unwrap(); - - let mut bindings = Bindings::new(); - for binding in toadd { - bindings.add(binding); - } - let added = time.elapsed().unwrap(); - let step = ScenarioStep::new(StepKind::Given, "given", &format!("step {}", N - 1)); - bindings.find(&step).unwrap(); - let found = time.elapsed().unwrap(); - - println!("texted: {}", texted.as_millis()); - println!("regexed: {}", regexed.as_millis()); - println!("created: {}", created.as_millis()); - println!("added: {}", added.as_millis()); - println!("found: {}", found.as_millis()); -} diff --git a/tests/bindings-ubm.rs b/tests/bindings-ubm.rs new file mode 100644 index 0000000..5e68ac1 --- /dev/null +++ b/tests/bindings-ubm.rs @@ -0,0 +1,55 @@ +// A micro-benchmark for the Bindings struct. +// +// The goal is to see how it deals with looking up a binding when +// there are a large number of them. + +use regex::RegexBuilder; +use std::collections::HashMap; +use std::time::SystemTime; +use subplot::{Binding, Bindings, ScenarioStep, StepKind}; + +const N: i32 = 1000; + +#[test] +fn bindings_microbenchmark() { + let time = SystemTime::now(); + + let mut texts = vec![]; + for i in 0..N { + texts.push(format!("step {}", i)); + } + let texted = time.elapsed().unwrap(); + + let mut re = vec![]; + for t in texts.iter() { + re.push(( + t, + RegexBuilder::new(&format!("^{}$", t)) + .case_insensitive(false) + .build() + .unwrap(), + )); + } + let regexed = time.elapsed().unwrap(); + + let mut toadd = vec![]; + for t in texts.iter() { + toadd.push(Binding::new(StepKind::Given, t, "func", None, false, HashMap::new()).unwrap()); + } + let created = time.elapsed().unwrap(); + + let mut bindings = Bindings::new(); + for binding in toadd { + bindings.add(binding); + } + let added = time.elapsed().unwrap(); + let step = ScenarioStep::new(StepKind::Given, "given", &format!("step {}", N - 1)); + bindings.find(&step).unwrap(); + let found = time.elapsed().unwrap(); + + println!("texted: {}", texted.as_millis()); + println!("regexed: {}", regexed.as_millis()); + println!("created: {}", created.as_millis()); + println!("added: {}", added.as_millis()); + println!("found: {}", found.as_millis()); +} -- cgit v1.2.1