use criterion::{black_box, criterion_group, criterion_main, Criterion};
use string_number::StringNumber;
criterion_group!(benches, benchmark);
criterion_main!(benches);
const A: f64 = 69.0;
const B: f64 = 420.0;
fn benchmark(c: &mut Criterion) {
let a = black_box(A);
let b = black_box(B);
c.bench_function("f64_add", |be| be.iter(|| black_box(a + b)));
c.bench_function("f64_sub", |be| be.iter(|| black_box(a - b)));
c.bench_function("f64_mul", |be| be.iter(|| black_box(a * b)));
let a: StringNumber = A.into();
let b: StringNumber = b.into();
c.bench_function("string_add", |be| {
be.iter(|| black_box(a.clone() + b.clone()))
});
c.bench_function("string_sub", |be| {
be.iter(|| black_box(a.clone() - b.clone()))
});
c.bench_function("string_mul", |be| {
be.iter(|| black_box(a.clone() * b.clone()))
});
}