chiark / gitweb /
wip new bf in rust, fixes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 8 Oct 2020 00:27:49 +0000 (01:27 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 8 Oct 2020 00:27:49 +0000 (01:27 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bigfloat.rs

index fbcc0ee5d20df7e2534df25d9954f9ca71d4686d..62e9c37b08cd8c3b4e0bb5e0c336e9e23975afaa 100644 (file)
@@ -214,7 +214,7 @@ impl Bigfloat {
     let nlimbs = (tail.len() + 1) / TEXT_PER_LIMB;
     let mut limbs = Vec::with_capacity(nlimbs+2);
     for lt in tail.chunks(TEXT_PER_LIMB) {
-      let s = str::from_utf8(lt).unwrap();
+      let s = str::from_utf8(&lt[0..DIGITS_PER_LIMB]).unwrap();
       let v = RawLimbVal::from_str_radix(s, 1 << BITS_PER_DIGIT).unwrap();
       limbs.push(Wrapping(v));
     }
@@ -343,6 +343,7 @@ mod test {
     let b = Bigfloat::from_str(s).unwrap();
     let b2 = b.clone();
     assert_eq!(format!("{}", &b), s);
+    assert_eq!(format!("{}", &b.clone_mut().repack().unwrap()), s);
     mem::drop(b);
     assert_eq!(format!("{}", &b2), s);
     assert_eq!(format!("{:?}", &b2),