diff options
author | Andreas Grois <andi@grois.info> | 2022-10-18 21:18:23 +0200 |
---|---|---|
committer | Andreas Grois <andi@grois.info> | 2022-10-18 21:34:49 +0200 |
commit | 86851fe70c0ff7ff1da98a82edabeef9c2ad989e (patch) | |
tree | dd496ef19bb6575fe85e3a64ba6542fb6db01561 /src/passwordmaker/base_conversion/iterative_conversion.rs | |
parent | b1f4d48e956c6b6599b666248e5aa157b9660dca (diff) |
Draft of iterative_conversion.
Diffstat (limited to 'src/passwordmaker/base_conversion/iterative_conversion.rs')
-rw-r--r-- | src/passwordmaker/base_conversion/iterative_conversion.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/passwordmaker/base_conversion/iterative_conversion.rs b/src/passwordmaker/base_conversion/iterative_conversion.rs index 94d28c0..9b55141 100644 --- a/src/passwordmaker/base_conversion/iterative_conversion.rs +++ b/src/passwordmaker/base_conversion/iterative_conversion.rs @@ -12,7 +12,7 @@ use std::convert::TryInto; use std::ops::{Mul, DivAssign}; use std::iter::successors; -pub(super) struct IterativeBaseConversion<V,B>{ +pub(crate) struct IterativeBaseConversion<V,B>{ current_value : V, current_base_potency : V, remaining_digits : usize, @@ -141,4 +141,11 @@ mod iterative_conversion_tests{ assert_eq!(i.len(), 32); assert_eq!(i.skip_while(|x| *x == 0_u64).collect::<Vec<_>>(), vec![7, 5, 0xA, 0x10, 0xC, 0xC, 3, 0xD, 3, 0xA, 3,8,4,8,3]); } + #[test] + fn test_simple_u128_to_base_39_conversion(){ + let i = IterativeBaseConversion::new(MyU128(1234567890123456789u128), 39u64); + assert_eq!(i.len(), 25); + // 3YPRS4FaC1KU + assert_eq!(i.skip_while(|x| *x == 0_u64).collect::<Vec<_>>(), vec![3, 34, 25, 27, 28, 4, 15, 36, 12, 1, 20, 30]); + } }
\ No newline at end of file |