diff --git a/benches/smt-subtree.rs b/benches/smt-subtree.rs index d690a66..df97f79 100644 --- a/benches/smt-subtree.rs +++ b/benches/smt-subtree.rs @@ -9,12 +9,14 @@ use miden_crypto::{ use rand_utils::prng_array; use winter_utils::Randomizable; +const PAIR_COUNTS: [u64; 5] = [1, 64, 128, 192, 256]; + fn smt_subtree_even(c: &mut Criterion) { let mut seed = [0u8; 32]; let mut group = c.benchmark_group("subtree8-even"); - for pair_count in (64..=256).step_by(64) { + for pair_count in PAIR_COUNTS { let bench_id = BenchmarkId::from_parameter(pair_count); group.bench_with_input(bench_id, &pair_count, |b, &pair_count| { b.iter_batched( @@ -23,7 +25,7 @@ fn smt_subtree_even(c: &mut Criterion) { let entries: Vec<(RpoDigest, Word)> = (0..pair_count) .map(|n| { // A single depth-8 subtree can have a maximum of 255 leaves. - let leaf_index = (n / pair_count) * 255; + let leaf_index = ((n as f64 / pair_count as f64) * 255.0) as u64; let key = RpoDigest::new([ generate_value(&mut seed), ONE, @@ -45,6 +47,7 @@ fn smt_subtree_even(c: &mut Criterion) { }) .collect(); leaves.sort(); + leaves.dedup_by_key(|leaf| leaf.0); leaves }, |leaves| { @@ -64,7 +67,7 @@ fn smt_subtree_random(c: &mut Criterion) { let mut group = c.benchmark_group("subtree8-rand"); - for pair_count in (64..=256).step_by(64) { + for pair_count in PAIR_COUNTS { let bench_id = BenchmarkId::from_parameter(pair_count); group.bench_with_input(bench_id, &pair_count, |b, &pair_count| { b.iter_batched( @@ -94,10 +97,6 @@ fn smt_subtree_random(c: &mut Criterion) { }) .collect(); leaves.sort(); - let before = leaves.len(); - leaves.dedup(); - let after = leaves.len(); - assert_eq!(before, after); leaves }, |leaves| {