diff --git a/units/src/fee.rs b/units/src/fee.rs index de9e5d6a4..281f1758c 100644 --- a/units/src/fee.rs +++ b/units/src/fee.rs @@ -345,8 +345,11 @@ mod tests { #[test] fn fee_wu() { - let fee_overflow = FeeRate::from_sat_per_kwu(10).to_fee(Weight::MAX); - assert!(fee_overflow.is_error()); + let operation = FeeRate::from_sat_per_kwu(10) + .to_fee(Weight::MAX) + .unwrap_err() + .operation(); + assert!(operation.is_multiplication()); let fee_rate = FeeRate::from_sat_per_vb(2).unwrap(); let weight = Weight::from_vb(3).unwrap(); diff --git a/units/src/result.rs b/units/src/result.rs index a7bfe46d0..adb301930 100644 --- a/units/src/result.rs +++ b/units/src/result.rs @@ -254,6 +254,18 @@ impl MathOp { /// Returns `true` if this operation error'ed due to division by zero. pub fn is_div_by_zero(self) -> bool { !self.is_overflow() } + + /// Returns `true` if this operation error'ed due to addition. + pub fn is_addition(self) -> bool { self == MathOp::Add } + + /// Returns `true` if this operation error'ed due to subtraction. + pub fn is_subtraction(self) -> bool { self == MathOp::Sub } + + /// Returns `true` if this operation error'ed due to multiplication. + pub fn is_multiplication(self) -> bool { self == MathOp::Mul } + + /// Returns `true` if this operation error'ed due to negation. + pub fn is_negation(self) -> bool { self == MathOp::Neg } } impl fmt::Display for MathOp {