Fill in significant function benches
This commit is contained in:
+36
-7
@@ -3,12 +3,12 @@
|
||||
extern crate test;
|
||||
use test::Bencher;
|
||||
extern crate range_bounds_map;
|
||||
use std::ops::Range;
|
||||
use std::ops::{Bound, Range};
|
||||
|
||||
use range_bounds_map::*;
|
||||
|
||||
/// linear multiplier for work done by benchmarks
|
||||
const REPEAT: usize = 100;
|
||||
const REPEAT: usize = 120;
|
||||
|
||||
/// utility for constructing identity [i,i]->i map for benches
|
||||
fn build_identity_map(n: usize) -> RangeBoundsMap<usize, Range<usize>, usize> {
|
||||
@@ -88,25 +88,54 @@ fn bench_insert_coalesce_touching_or_overlapping(b: &mut Bencher) {
|
||||
#[bench]
|
||||
fn bench_overlaps(b: &mut Bencher) {
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| for _ in map.overlapping(&(0..2 * REPEAT)) {})
|
||||
b.iter(|| for _ in map.overlapping(&(0..REPEAT)) {})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_iter(b: &mut Bencher) {
|
||||
b.iter(|| {})
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| for _ in map.iter() {})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_remove_overlapping(b: &mut Bencher) {
|
||||
b.iter(|| {})
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| {
|
||||
let mut map = map.clone();
|
||||
for _ in map.remove_overlapping(&(0..REPEAT)) {}
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_cut(b: &mut Bencher) {
|
||||
b.iter(|| {})
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| {
|
||||
let mut map = map.clone();
|
||||
if let Err(e) = map.cut(&(0..REPEAT)) {
|
||||
panic!("Failed to cut: {:?}", e)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_gaps(b: &mut Bencher) {
|
||||
b.iter(|| {})
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| for _ in map.gaps(&(0..REPEAT)) {})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_split_off(b: &mut Bencher) {
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| {
|
||||
let mut map = map.clone();
|
||||
if let Err(e) = map.split_off(Bound::Included(REPEAT / 2)) {
|
||||
panic!("Failed to split: {:?}", e)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_overlapping_trimmed(b: &mut Bencher) {
|
||||
let map = build_identity_map(REPEAT);
|
||||
b.iter(|| for _ in map.overlapping_trimmed(&(1..REPEAT - 1)) {})
|
||||
}
|
||||
|
||||
@@ -1412,7 +1412,7 @@ where
|
||||
}
|
||||
|
||||
/// Moves all elements from `other` into `self` by
|
||||
/// [`RangeBoundsMap::insert_platonic()`] in acending order,
|
||||
/// [`RangeBoundsMap::insert_platonic()`] in ascending order,
|
||||
/// leaving `other` empty.
|
||||
///
|
||||
/// If any of the `RangeBounds` in `other` overlap `self` then
|
||||
|
||||
Reference in New Issue
Block a user