More tests
All checks were successful
timw4mail/rusty-numbers/pipeline/head This commit looks good

This commit is contained in:
Timothy Warren 2020-03-11 11:16:40 -04:00
parent a8de0cfa88
commit 9f60706a9b

View File

@ -142,6 +142,7 @@ impl Sub for BigInt {
type Output = Self; type Output = Self;
fn sub(self, rhs: Self) -> Self::Output { fn sub(self, rhs: Self) -> Self::Output {
// @TODO: handle signs
let mut out = BigInt::new_empty(); let mut out = BigInt::new_empty();
let u_digits = self.inner.len(); let u_digits = self.inner.len();
@ -158,10 +159,6 @@ impl Sub for BigInt {
let a = *self.inner.get(i).unwrap_or(&0usize); let a = *self.inner.get(i).unwrap_or(&0usize);
let b = *rhs.inner.get(i).unwrap_or(&0usize); let b = *rhs.inner.get(i).unwrap_or(&0usize);
if a == 0 && b == 0 {
continue;
}
if a > 0 && (a - borrow) >= b { if a > 0 && (a - borrow) >= b {
let res = a - b - borrow; let res = a - b - borrow;
@ -362,6 +359,18 @@ mod tests {
assert_eq!(int.inner[0], 45usize) assert_eq!(int.inner[0], 45usize)
} }
#[test]
fn test_trim_zeros() {
let mut lotsoftrailing = BigInt {
inner: vec![1, 0, 0, 0, 0, 0, 0, 0, 0],
sign: Positive
};
lotsoftrailing.trim_zeros();
assert_eq!(BigInt::from(1), lotsoftrailing);
}
#[test] #[test]
fn test_add() { fn test_add() {
// MAX is 2^Bitsize - 1, // MAX is 2^Bitsize - 1,
@ -414,6 +423,17 @@ mod tests {
diff.inner[0], diff.inner[0],
core::usize::MAX - 1 core::usize::MAX - 1
); );
let a = BigInt {
inner: vec![1,0,1],
sign: Positive
};
let b = BigInt::from(2);
let diff = a - b;
assert_eq!(
diff.inner,
vec![core::usize::MAX, core::usize::MAX]
);
} }
#[test] #[test]