#![feature(test)]
#![allow(clippy::unit_arg)]
extern crate test;
use test::Bencher;
use downsample::{Algorithm, FixedFrequencyBuilder};
#[bench]
fn single_push(b: &mut Bencher) {
let mut s = FixedFrequencyBuilder::new(100, 100)
.level::<{ Algorithm::Average }>(59, 100)
.level::<{ Algorithm::Average }>(59, 60)
.level::<{ Algorithm::Average }>(23, 60)
.build();
b.iter(|| s.push(123.456));
}
#[bench]
fn push_1_000_000(b: &mut Bencher) {
let mut s = FixedFrequencyBuilder::new(100, 100)
.level::<{ Algorithm::Average }>(59, 100)
.level::<{ Algorithm::Average }>(59, 60)
.level::<{ Algorithm::Average }>(23, 60)
.build();
b.iter(|| {
for _ in 0..1_000_000 {
test::black_box(s.push(123.456));
}
});
}
#[bench]
fn read_1_000_000(b: &mut Bencher) {
let mut s = FixedFrequencyBuilder::new(100, 100)
.level::<{ Algorithm::Average }>(59, 100)
.level::<{ Algorithm::Average }>(59, 60)
.level::<{ Algorithm::Average }>(23, 60)
.build();
for i in 0..10000 {
s.push(i as f32 + 7.31);
}
b.iter(|| {
for _ in 0..1_000_000 {
test::black_box(s.get_back_by_level(1, 12));
}
})
}