aboutsummaryrefslogtreecommitdiff
path: root/src/tests/aoc_2022_08/benches/main.rs
blob: 462480e13b3284acdbb673ab633ee76e0be12aa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use aoc_2022_08::HeightMap;
use criterion::{criterion_group, criterion_main, BatchSize, BenchmarkId, Criterion};
use rand::{rngs::StdRng, SeedableRng};

fn run_benches(c: &mut Criterion) {
    let mut rng = StdRng::seed_from_u64(42);
    for size in [1000, 2000].iter() {
        c.bench_with_input(
            BenchmarkId::new("aoc_2022_08-part1", size),
            size,
            |b, &n| {
                b.iter_batched_ref(
                    || HeightMap::gen(&mut rng, n),
                    |map| map.part1(),
                    BatchSize::SmallInput,
                )
            },
        );

        c.bench_with_input(
            BenchmarkId::new("aoc_2022_08-part2", size),
            size,
            |b, &n| {
                b.iter_batched_ref(
                    || HeightMap::gen(&mut rng, n),
                    |map| map.part2(),
                    BatchSize::SmallInput,
                )
            },
        );
    }
}

criterion_group!(
    name = benches;
    config = Criterion::default().sample_size(10);
    targets = run_benches
);
criterion_main!(benches);