aboutsummaryrefslogtreecommitdiff
path: root/src/tests/aoc_2022_14/benches/main.rs
blob: 885b3894ff248ac7b00dc9d08e7feed32fe0bbf6 (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
use aoc_2022_14::tests::*;
use criterion::{criterion_group, criterion_main, BatchSize, BenchmarkId, Criterion};
use rand::{rngs::StdRng, SeedableRng};

fn run_benches(c: &mut Criterion) {
    c.bench_with_input(
        BenchmarkId::new("aoc_2022_14-part1", "small"),
        &SMALL_INPUT,
        |b, &inp| b.iter_batched_ref(|| parse_input(inp), |w| w.part1(), BatchSize::SmallInput),
    );
    c.bench_with_input(
        BenchmarkId::new("aoc_2022_14-part1", "large"),
        &LARGE_INPUT,
        |b, &inp| b.iter_batched_ref(|| parse_input(inp), |w| w.part1(), BatchSize::SmallInput),
    );

    c.bench_with_input(
        BenchmarkId::new("aoc_2022_14-part2", "small"),
        &SMALL_INPUT,
        |b, &inp| b.iter_batched_ref(|| parse_input(inp), |w| w.part2(), BatchSize::SmallInput),
    );
    c.bench_with_input(
        BenchmarkId::new("aoc_2022_14-part2", "large"),
        &LARGE_INPUT,
        |b, &inp| b.iter_batched_ref(|| parse_input(inp), |w| w.part2(), BatchSize::SmallInput),
    );
}

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