From ec38860b65d01d09bf9189cc1b2d043e4b36a140 Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Fri, 11 Apr 2025 09:31:13 +0100 Subject: [PATCH] Add a test to kill mutants in MathOp Weekly mutation testing found mutants in `is_overflow` and `is_divide_by_zero`. Add a test to kill them. --- units/src/amount/tests.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/units/src/amount/tests.rs b/units/src/amount/tests.rs index a2a3bec07..d6752d450 100644 --- a/units/src/amount/tests.rs +++ b/units/src/amount/tests.rs @@ -1405,3 +1405,22 @@ fn amount_op_result_sum() { let _ = amount_refs.iter().copied().sum::>(); let _ = amount_refs.into_iter().sum::>(); } + +#[test] +fn math_op_errors() { + let overflow = Amount::MAX + Amount::from_sat(1).unwrap(); + if let NumOpResult::Error(err) = overflow { + assert!(err.operation().is_overflow()); + assert!(!err.operation().is_div_by_zero()); + } else { + panic!("Expected an overflow error, but got a valid result"); + } + + let div_by_zero = Amount::from_sat(10).unwrap() / Amount::ZERO; + if let NumOpResult::Error(err) = div_by_zero { + assert!(!err.operation().is_overflow()); + assert!(err.operation().is_div_by_zero()); + } else { + panic!("Expected a division by zero error, but got a valid result"); + } +}