From ef56baa69670f9c2e453cb981d6f3488247d000c Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Thu, 19 Jun 2025 20:37:01 +0100 Subject: [PATCH] Improve fee_rate test to kill a mutant There is a mutant found in `FeeRate` `to_sat_per_kvb_floor` and `ceil`. Add to the existing test so that all 6 to_sat floor and ceil functions are tested. --- units/src/fee_rate/mod.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/units/src/fee_rate/mod.rs b/units/src/fee_rate/mod.rs index 0a856b7f9..b61e24d39 100644 --- a/units/src/fee_rate/mod.rs +++ b/units/src/fee_rate/mod.rs @@ -384,11 +384,20 @@ mod tests { } #[test] - fn raw_feerate() { - let fee_rate = FeeRate::from_sat_per_kwu(749); - assert_eq!(fee_rate.to_sat_per_kwu_floor(), 749); + fn fee_rate_to_sat_per_x() { + let fee_rate = FeeRate::from_sat_per_mvb(2_000_400); + + // sat/kwu: 2_000_400 / 4_000 = 500.1 + assert_eq!(fee_rate.to_sat_per_kwu_floor(), 500); + assert_eq!(fee_rate.to_sat_per_kwu_ceil(), 501); + + // sat/vB: 2_000_400 / 1_000_000 = 2.0004 assert_eq!(fee_rate.to_sat_per_vb_floor(), 2); assert_eq!(fee_rate.to_sat_per_vb_ceil(), 3); + + // sat/kvb: 2_000_400 / 1_000 = 2_000.4 + assert_eq!(fee_rate.to_sat_per_kvb_floor(), 2_000); + assert_eq!(fee_rate.to_sat_per_kvb_ceil(), 2_001); } #[test]