use criterion::{
Criterion,
BenchmarkId,
black_box,
criterion_group,
criterion_main,
};
use core_dev::algorithms::two_sum;
pub fn bench_two_sum(criterion: &mut Criterion) {
criterion.bench_function("two+wum", |bencher| {
bencher.iter(move || {
two_sum(
black_box(vec![10, 10, 10, 10, 10]),
black_box(20),
)
});
});
}
pub fn bench_two_sum_2(criterion: &mut Criterion) {
let mut group = criterion.benchmark_group("two_sum");
let examples = for (target, nums) in [1, 5, 20].into_iter().zip(
[
vec![123i32, 123, 123, 123, 2, 8],
vec![10, 10, 10, 10, 10i32],
vec![],
]
.iter(),
) {
group.bench_with_input(
BenchmarkId::from_parameter(target),
nums,
|bencher, nums| {
bencher.iter(|| {
two_sum(
black_box((&nums).to_vec()),
black_box(target),
)
});
},
);
};
}
criterion_group!(benches,
bench_two_sum,
bench_two_sum_2
);
criterion_main!(benches);