From 7c8e01f5b2c7c2659c8bf5db0c25a124deb62a88 Mon Sep 17 00:00:00 2001 From: nyamnyam Date: Thu, 12 Sep 2019 10:16:53 +0900 Subject: [PATCH] BigUint(0) bug fixed (encode_base127) --- src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 3d5368f..b349bcf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -983,6 +983,11 @@ fn encode_base127(v: &BigUint) -> Vec { let u128 = BigUint::from_u8(128).unwrap(); let zero = BigUint::zero(); + if acc == zero { + res.push(0); + return res; + } + while acc > zero { // we build this vector backwards let digit = &acc % &u128; @@ -1494,4 +1499,12 @@ mod tests { can_parse("test/server.bin").unwrap(); can_parse("test/key.bin").unwrap(); } + + #[test] + fn encode_base127_zero() { + let zero = BigUint::from(0 as u64); + let encoded = encode_base127(&zero); + let expected: Vec:: = vec![0x0]; + assert_eq!(expected, encoded); + } } -- 2.53.0