Ensure shrinking will work properly for ufvk proptests.

This commit is contained in:
Kris Nuttycombe 2021-12-03 15:27:25 -07:00
parent fd300e0061
commit 9144aaef0a
1 changed files with 16 additions and 14 deletions

View File

@ -138,7 +138,7 @@ impl SealedContainer for Ufvk {
mod tests {
use assert_matches::assert_matches;
use proptest::{array::uniform32, prelude::*, sample::select};
use proptest::{array::uniform1, array::uniform32, prelude::*, sample::select};
use super::{Fvk, ParseError, Typecode, Ufvk};
use crate::{
@ -147,28 +147,30 @@ mod tests {
};
prop_compose! {
fn uniform128()(a in uniform32(0u8..), b in uniform32(0u8..), c in uniform32(0u8..), d in uniform32(0u8..)) -> [u8; 128] {
fn uniform128()(a in uniform96(), b in uniform32(0u8..)) -> [u8; 128] {
let mut fvk = [0; 128];
fvk[..96].copy_from_slice(&a);
fvk[96..].copy_from_slice(&b);
fvk
}
}
prop_compose! {
fn uniform96()(a in uniform32(0u8..), b in uniform32(0u8..), c in uniform32(0u8..)) -> [u8; 96] {
let mut fvk = [0; 96];
fvk[..32].copy_from_slice(&a);
fvk[32..64].copy_from_slice(&b);
fvk[64..96].copy_from_slice(&c);
fvk[96..].copy_from_slice(&d);
fvk[64..].copy_from_slice(&c);
fvk
}
}
prop_compose! {
fn uniform96()(a in uniform128()) -> [u8; 96] {
let mut fvk = [0; 96];
fvk[..96].copy_from_slice(&a[..96]);
fvk
}
}
prop_compose! {
fn uniform65()(a in uniform96()) -> [u8; 65] {
fn uniform65()(a in uniform32(0u8..), b in uniform32(0u8..), c in uniform1(0u8..)) -> [u8; 65] {
let mut fvk = [0; 65];
fvk[..65].copy_from_slice(&a[..65]);
fvk[..32].copy_from_slice(&a);
fvk[32..64].copy_from_slice(&b);
fvk[64..].copy_from_slice(&c);
fvk
}
}