From d456f89e13e983aa2c04d9ea4987bd700ac9fcfc Mon Sep 17 00:00:00 2001 From: Diggory Hardy Date: Wed, 5 Aug 2026 08:25:38 +0000 Subject: [PATCH] Test that WeightedIndex rejects INFINITY with Error::Overflow --- src/distr/weighted/weighted_index.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/distr/weighted/weighted_index.rs b/src/distr/weighted/weighted_index.rs index 0fbc2be361..7ca3ee1ad9 100644 --- a/src/distr/weighted/weighted_index.rs +++ b/src/distr/weighted/weighted_index.rs @@ -468,7 +468,10 @@ mod test { 4 ); } + } + #[test] + fn weighted_index_new_errors() { assert_eq!( WeightedIndex::new(&[10][0..0]).unwrap_err(), Error::InvalidInput @@ -486,6 +489,10 @@ mod test { Error::InvalidWeight ); assert_eq!(WeightedIndex::new([-10]).unwrap_err(), Error::InvalidWeight); + assert_eq!( + WeightedIndex::new([f64::INFINITY]).unwrap_err(), + Error::Overflow + ); } #[test] @@ -517,6 +524,15 @@ mod test { } } + #[test] + fn weighted_index_update_errors() { + let mut distr = WeightedIndex::new([1.0, 10.0]).unwrap(); + assert_eq!( + distr.update_weights(&[(0, &f32::INFINITY)]).unwrap_err(), + Error::Overflow + ); + } + #[test] fn test_update_weights_errors() { let data = [