aboutsummaryrefslogtreecommitdiff
path: root/azalea/benches/checks.rs
blob: 61f1f07d47e4070134817d8ee8041476941572dc (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
use std::hint::black_box;

use azalea::pathfinder::mining::MiningCache;
use azalea_registry::builtin::BlockKind;
use criterion::{Criterion, criterion_group, criterion_main};

fn benchmark(c: &mut Criterion) {
    let mining_cache = MiningCache::new(None);

    let stone = BlockKind::Stone.into();
    c.bench_function("is_liquid stone", |b| {
        b.iter(|| mining_cache.is_liquid(black_box(stone)));
    });

    let water = BlockKind::Water.into();
    c.bench_function("is_liquid water", |b| {
        b.iter(|| mining_cache.is_liquid(black_box(water)));
    });

    let lava = BlockKind::Lava.into();
    c.bench_function("is_liquid lava", |b| {
        b.iter(|| mining_cache.is_liquid(black_box(lava)));
    });

    let waterlogged_slab = azalea_block::blocks::OakSlab {
        kind: azalea_block::properties::SlabKind::Bottom,
        waterlogged: true,
    }
    .into();
    c.bench_function("is_liquid waterlogged slab", |b| {
        b.iter(|| mining_cache.is_liquid(black_box(waterlogged_slab)));
    });
}

criterion_group!(benches, benchmark);
criterion_main!(benches);