use criterion::{black_box, criterion_group, criterion_main, Criterion};
use inditech::{Slider, SMA};
use sliding_features::*;
pub fn sliders(c: &mut Criterion) {
let mut sma = SMA::new(14);
c.bench_function("push", |b| {
b.iter(|| {
sma.push(black_box(10.));
})
});
c.bench_function("last", |b| {
b.iter(|| {
sma.last();
})
});
}
pub fn sliding(c: &mut Criterion) {
let mut sma = sliding_features::SMA::new_final(14);
c.bench_function("push", |b| {
b.iter(|| {
sma.update(black_box(10.));
})
});
c.bench_function("last", |b| {
b.iter(|| {
sma.last();
})
});
}
criterion_group!(benches, sliders, sliding);
criterion_main!(benches);