diff options
| author | Sidney Cammeresi <sac@readyset.io> | 2025-05-07 17:07:27 -0700 |
|---|---|---|
| committer | Sidney Cammeresi <sac@readyset.io> | 2025-05-27 08:31:56 -0700 |
| commit | 8656d9e619f7b8ee3bde8bc7ee57a7847c0a5b10 (patch) | |
| tree | 4a74a508adf7dc67c02181592735cc5410e4bf24 | |
| parent | 38c37eb3cbd87894cdab588b5002fa07803feff7 (diff) | |
| download | rust-8656d9e619f7b8ee3bde8bc7ee57a7847c0a5b10.tar.gz rust-8656d9e619f7b8ee3bde8bc7ee57a7847c0a5b10.zip | |
Unit test for Range parameter of `BTreeMap::extract_if`
| -rw-r--r-- | library/alloc/src/collections/btree/map/tests.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/library/alloc/src/collections/btree/map/tests.rs b/library/alloc/src/collections/btree/map/tests.rs index 10add438926..79879d31d3d 100644 --- a/library/alloc/src/collections/btree/map/tests.rs +++ b/library/alloc/src/collections/btree/map/tests.rs @@ -968,6 +968,30 @@ mod test_extract_if { map.check(); } + #[test] + fn consumed_removing_some() { + let pairs = (0..3).map(|i| (i, i)); + let map = BTreeMap::from_iter(pairs); + for x in 0..3 { + for y in 0..3 { + let mut map = map.clone(); + assert!(map.extract_if(x..y, |_, _| true).eq((x..y).map(|i| (i, i)))); + for i in 0..3 { + assert_ne!(map.contains_key(&i), (x..y).contains(&i)); + } + } + } + for x in 0..3 { + for y in 0..2 { + let mut map = map.clone(); + assert!(map.extract_if(x..=y, |_, _| true).eq((x..=y).map(|i| (i, i)))); + for i in 0..3 { + assert_ne!(map.contains_key(&i), (x..=y).contains(&i)); + } + } + } + } + // Explicitly consumes the iterator and modifies values through it. #[test] fn mutating_and_keeping() { |
