chiark / gitweb /
refactor bigfloat rust tests for add extraction
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 5 Oct 2020 18:40:00 +0000 (19:40 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 5 Oct 2020 18:40:00 +0000 (19:40 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bigfloat.rs

index 6ae6080c35a10c9199010f207d421ff8811fbf27..6965ad5d1e55022f8fd0d116f58afa52d942ad4c 100644 (file)
@@ -420,13 +420,18 @@ mod test {
 
   #[test]
   fn addition() {
-    let mut m = Bigfloat::from_str("!0000 ffff_fff0_fff0")
-      .unwrap().clone_mut();
-    let mut a = |rhs| {
-      m.add(rhs);
-      format!("{}", m.repack().unwrap())
-    };
-    assert_eq!(a(0x02), "!0000 ffff_fff2_fff0");
-    assert_eq!(a(0x20), "+0000 0000_0012_fff0");
+    fn mk(s: &str) -> super::Mutable { bf(s).clone_mut() }
+    impl Mutable {
+      fn chk(mut self, rhs: u32, exp: &str) -> Self {
+        self.add(rhs);
+        let got = self.repack().unwrap();
+        assert_eq!(got.to_string(), exp);
+        self
+      }
+    }
+    mk("!0000 ffff_fff0_fff0")
+      .chk(0x02, "!0000 ffff_fff2_fff0")
+      .chk(0x20, "+0000 0000_0012_fff0")
+      ;
   }
 }