fix even-distribution generation
This commit is contained in:
parent
75355d1d12
commit
0878a01fd1
2 changed files with 6 additions and 3 deletions
|
@ -25,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,
|
||||
|
@ -47,6 +47,7 @@ fn smt_subtree_even(c: &mut Criterion) {
|
|||
})
|
||||
.collect();
|
||||
leaves.sort();
|
||||
leaves.dedup_by_key(|leaf| leaf.0);
|
||||
leaves
|
||||
},
|
||||
|leaves| {
|
||||
|
|
|
@ -597,7 +597,7 @@ mod test {
|
|||
|
||||
let entries: Vec<(RpoDigest, Word)> = (0..PAIR_COUNT)
|
||||
.map(|i| {
|
||||
let leaf_index = u64::MAX / (i + 1);
|
||||
let leaf_index = ((i as f64 / PAIR_COUNT as f64) * 255.0) as u64;
|
||||
let key = RpoDigest::new([ONE, ONE, Felt::new(i), Felt::new(leaf_index)]);
|
||||
let value = [ONE, ONE, ONE, Felt::new(i)];
|
||||
(key, value)
|
||||
|
@ -606,7 +606,7 @@ mod test {
|
|||
|
||||
let control = Smt::with_entries(entries.clone()).unwrap();
|
||||
|
||||
let leaves: Vec<(u64, RpoDigest)> = entries
|
||||
let mut leaves: Vec<(u64, RpoDigest)> = entries
|
||||
.iter()
|
||||
.map(|(key, value)| {
|
||||
let leaf = SmtLeaf::new_single(*key, *value);
|
||||
|
@ -615,6 +615,8 @@ mod test {
|
|||
(col, hash)
|
||||
})
|
||||
.collect();
|
||||
leaves.sort();
|
||||
leaves.dedup_by_key(|leaf| leaf.0);
|
||||
|
||||
let first_subtree = Smt::build_subtree(leaves, SMT_DEPTH);
|
||||
assert!(!first_subtree.is_empty());
|
||||
|
|
Loading…
Add table
Reference in a new issue