some iterator tuning
[rust-101.git] / src / part08.rs
index 630da427dfec70d2dad9f1920579b2b4277faf8e..7a9c093d8aec4308f0c4463b5adf83e6821133c0 100644 (file)
@@ -28,9 +28,9 @@ fn overflowing_add(a: u64, b: u64, carry: bool) -> (u64, bool) {
         // **Exercise 08.1**: Write the code to handle adding the carry in this case.
         unimplemented!()
     } else {
-        // The addition *did* overflow. It is impossible for the addition of the carry
+        // Otherwise, the addition *did* overflow. It is impossible for the addition of the carry
         // to overflow again, as we are just adding 0 or 1.
-        (sum + if carry { 1 } else { 0 }, true)                     /*@*/
+        (sum + if carry { 1 } else { 0 }, true)                                 /*@*/
     }
 }
 
@@ -113,7 +113,9 @@ impl<'a, 'b> ops::Add<&'a BigInt> for &'b BigInt {
 //@ Rust would not bother compiling them when you just build your program for normal use. Other than that, tests work as usually.
 #[cfg(test)]
 mod tests {
-    #[test]
+    use part05::BigInt;
+
+    /*#[test]*/
     fn test_add() {
         let b1 = BigInt::new(1 << 32);
         let b2 = BigInt::from_vec(vec![0, 1]);
@@ -145,4 +147,4 @@ mod tests {
 // **Exercise 08.6**: Write a subtraction function, and testcases for it. Decide for yourself how you want to handle negative results.
 // For example, you may want to return an `Option`, to panic, or to return `0`.
 
-//@ [index](main.html) | [previous](part07.html) | [next](main.html)
+//@ [index](main.html) | [previous](part07.html) | [next](part09.html)