seed: print seed info in tests

This commit is contained in:
hinto.janai
2023-12-12 13:55:26 -05:00
committed by Luke Parker
parent 6a172825aa
commit 884b6a6fec

View File

@@ -151,7 +151,14 @@ fn test_classic_seed() {
// Test against Monero // Test against Monero
{ {
let seed = Seed::from_string(Zeroizing::new(vector.seed.clone())).unwrap(); let seed = Seed::from_string(Zeroizing::new(vector.seed.clone())).unwrap();
assert_eq!(seed, Seed::from_string(Zeroizing::new(trim_seed(&vector.seed))).unwrap()); let trim = trim_seed(&vector.seed);
println!(
"{}. seed: {}, entropy: {:?}, trim: {trim}",
line!(),
*seed.to_string(),
*seed.entropy()
);
assert_eq!(seed, Seed::from_string(Zeroizing::new(trim)).unwrap());
let spend: [u8; 32] = hex::decode(vector.spend).unwrap().try_into().unwrap(); let spend: [u8; 32] = hex::decode(vector.spend).unwrap().try_into().unwrap();
// For classical seeds, Monero directly uses the entropy as a spend key // For classical seeds, Monero directly uses the entropy as a spend key
@@ -177,7 +184,14 @@ fn test_classic_seed() {
// Test against ourselves // Test against ourselves
{ {
let seed = Seed::new(&mut OsRng, SeedType::Classic(vector.language)); let seed = Seed::new(&mut OsRng, SeedType::Classic(vector.language));
assert_eq!(seed, Seed::from_string(Zeroizing::new(trim_seed(&seed.to_string()))).unwrap()); let trim = trim_seed(&seed.to_string());
println!(
"{}. seed: {}, entropy: {:?}, trim: {trim}",
line!(),
*seed.to_string(),
*seed.entropy()
);
assert_eq!(seed, Seed::from_string(Zeroizing::new(trim)).unwrap());
assert_eq!( assert_eq!(
seed, seed,
Seed::from_entropy(SeedType::Classic(vector.language), seed.entropy(), None).unwrap() Seed::from_entropy(SeedType::Classic(vector.language), seed.entropy(), None).unwrap()
@@ -337,20 +351,30 @@ fn test_polyseed() {
// String -> Seed // String -> Seed
let seed = Seed::from_string(Zeroizing::new(vector.seed.clone())).unwrap(); let seed = Seed::from_string(Zeroizing::new(vector.seed.clone())).unwrap();
let trim = trim_seed(&vector.seed);
let add_whitespace = add_whitespace(vector.seed.clone());
let seed_without_accents = seed_without_accents(&vector.seed);
println!(
"{}. seed: {}, entropy: {:?}, trim: {}, add_whitespace: {}, seed_without_accents: {}",
line!(),
*seed.to_string(),
*seed.entropy(),
trim,
add_whitespace,
seed_without_accents,
);
// Make sure a version with added whitespace still works // Make sure a version with added whitespace still works
let whitespaced_seed = let whitespaced_seed = Seed::from_string(Zeroizing::new(add_whitespace)).unwrap();
Seed::from_string(Zeroizing::new(add_whitespace(vector.seed.clone()))).unwrap();
assert_eq!(seed, whitespaced_seed); assert_eq!(seed, whitespaced_seed);
// Check trimmed versions works // Check trimmed versions works
if vector.has_prefix { if vector.has_prefix {
let trimmed_seed = Seed::from_string(Zeroizing::new(trim_seed(&vector.seed))).unwrap(); let trimmed_seed = Seed::from_string(Zeroizing::new(trim)).unwrap();
assert_eq!(seed, trimmed_seed); assert_eq!(seed, trimmed_seed);
} }
// Check versions without accents work // Check versions without accents work
if vector.has_accent { if vector.has_accent {
let seed_without_accents = let seed_without_accents = Seed::from_string(Zeroizing::new(seed_without_accents)).unwrap();
Seed::from_string(Zeroizing::new(seed_without_accents(&vector.seed))).unwrap();
assert_eq!(seed, seed_without_accents); assert_eq!(seed, seed_without_accents);
} }
@@ -367,6 +391,7 @@ fn test_polyseed() {
// Check against ourselves // Check against ourselves
{ {
let seed = Seed::new(&mut OsRng, SeedType::Polyseed(vector.language)); let seed = Seed::new(&mut OsRng, SeedType::Polyseed(vector.language));
println!("{}. seed: {}, key: {:?}", line!(), *seed.to_string(), *seed.key());
assert_eq!(seed, Seed::from_string(seed.to_string()).unwrap()); assert_eq!(seed, Seed::from_string(seed.to_string()).unwrap());
assert_eq!( assert_eq!(
seed, seed,