From e4fb445bd7fd9673363d25f57fb2dd6455ab2391 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Thu, 22 Oct 2026 20:04:41 -0400 Subject: [PATCH] fix: exclude empty ranges from proptest_range_boundaries With len = 0, the negative contains_range checks build empty ranges (e.g. 0..0 or 2..2). contains_range always returns true for an empty range, so those assertions can never pass. Require len >= 1 in both the RoaringBitmap and RoaringTreemap versions so every negative check covers start - 1 or end, neither of which is in the bitmap. --- roaring/tests/range_checks.rs | 3 ++- roaring/tests/treemap_range_checks.rs | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/roaring/tests/range_checks.rs b/roaring/tests/range_checks.rs index 7903eed2..2417d3b6 100644 --- a/roaring/tests/range_checks.rs +++ b/roaring/tests/range_checks.rs @@ -52,7 +52,8 @@ proptest! { fn proptest_range_boundaries( // Ensure we can always subtract one from start start in 1..=262_143_u32, - len in 0..=262_143_u32, + // An empty range is always contained, so len must be non-zero for the negative cases to hold + len in 1..=262_143_u32, ) { let mut bitmap = RoaringBitmap::new(); let end = start + len; diff --git a/roaring/tests/treemap_range_checks.rs b/roaring/tests/treemap_range_checks.rs index 62dbd8c2..7a84c4de 100644 --- a/roaring/tests/treemap_range_checks.rs +++ b/roaring/tests/treemap_range_checks.rs @@ -147,8 +147,10 @@ proptest! { #[test] fn proptest_range_boundaries( + // Ensure we can always subtract one from start start in 1..=262_143_u64, - len in 0..=262_143_u64, + // An empty range is always contained, so len must be non-zero for the negative cases to hold + len in 1..=262_143_u64, ) { let mut rb = RoaringTreemap::new(); let end = start + len;