test: addtiion

This commit is contained in:
2026-04-27 18:38:57 -06:00
parent 5cc60be02c
commit 273ba27222

View File

@@ -104,7 +104,7 @@ impl ops::Add for Fraction {
fn add(self, other: Self) -> Self::Output {
let mut new = Fraction {
num: (self.num * other.den) + (self.den * other.num),
den: self.num * other.den,
den: self.den * other.den,
};
new.reduce();
new.correct_sign();
@@ -248,4 +248,49 @@ mod tests {
assert_eq!(f.num, -1);
assert_eq!(f.den, 2);
}
#[test]
fn test_add_basic() {
let a = Fraction::new(7, 13).unwrap();
let b = Fraction::new(4, 7).unwrap();
let c = a + b;
assert_eq!(c.num, 101);
assert_eq!(c.den, 91);
}
#[test]
fn test_add_with_common_denominator() {
let a = Fraction::new(7, 13).unwrap();
let b = Fraction::new(4, 13).unwrap();
let c = a + b;
assert_eq!(c.num, 11);
assert_eq!(c.den, 13);
}
#[test]
fn test_add_positive_and_negative() {
let a = Fraction::new(-32, 237).unwrap();
let b = Fraction::new(22, 44).unwrap();
let c = a + b;
assert_eq!(c.num, 173);
assert_eq!(c.den, 474);
}
#[test]
fn test_add_negative_and_negative() {
let a = Fraction::new(-500, 12).unwrap();
let b = Fraction::new(-22, 4).unwrap();
let c = a + b;
assert_eq!(c.num, -283);
assert_eq!(c.den, 6);
}
#[test]
fn test_add_with_zero() {
let a = Fraction::new(0, 13).unwrap();
let b = Fraction::new(4, 7).unwrap();
let c = a + b;
assert_eq!(c.num, 4);
assert_eq!(c.den, 7);
}
}