Create basic bench structure

This commit is contained in:
Mikolaj Figurski
2023-01-11 15:38:20 -05:00
parent 63f753b53d
commit 3ff3d19e71
+66
View File
@@ -0,0 +1,66 @@
#![feature(test)]
extern crate test;
use test::Bencher;
extern crate range_bounds_map;
use std::ops::Range;
use range_bounds_map::*;
/// linear multiplier for work done by benchmarks
const REPEAT: usize = 100;
fn build_identity_map(n: usize) -> RangeBoundsMap<usize, Range<usize>, usize> {
let mut map = RangeBoundsMap::new();
for i in 0..n {
if let Err(OverlapError) = map.insert_platonic((2 * i)..(2 * i + 1), i)
{
panic!("Failed to insert")
}
}
map
}
#[bench]
fn bench_insert_platonic(b: &mut Bencher) {
b.iter(|| {
let mut map = RangeBoundsMap::new();
for i in 0..REPEAT {
let r = (2 * i)..(2 * i + 1);
if let Err(OverlapError) = map.insert_platonic(r, i) {
panic!("Failed to insert")
}
}
});
}
#[bench]
fn bench_overlaps(b: &mut Bencher) {
let map = build_identity_map(REPEAT);
b.iter(|| for _ in map.overlapping(&(0..2 * REPEAT)) {})
}
#[bench]
fn bench_get_entry_at_point(b: &mut Bencher) {
b.iter(|| {})
}
#[bench]
fn bench_iter(b: &mut Bencher) {
b.iter(|| {})
}
#[bench]
fn bench_remove_overlapping(b: &mut Bencher) {
b.iter(|| {})
}
#[bench]
fn bench_cut(b: &mut Bencher) {
b.iter(|| {})
}
#[bench]
fn bench_gaps(b: &mut Bencher) {
b.iter(|| {})
}