Skip to content

Commit 21d3f84

Browse files
test: add is_superset test cases for BTreeSet
1 parent f387c93 commit 21d3f84

File tree

1 file changed

+36
-0
lines changed
  • library/alloc/src/collections/btree/set

1 file changed

+36
-0
lines changed

library/alloc/src/collections/btree/set/tests.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,42 @@ fn test_is_subset() {
319319
assert_eq!(is_subset(&[99, 100], &large), false);
320320
}
321321

322+
#[test]
323+
fn test_is_superset() {
324+
fn is_superset(a: &[i32], b: &[i32]) -> bool {
325+
let set_a = BTreeSet::from_iter(a.iter());
326+
let set_b = BTreeSet::from_iter(b.iter());
327+
set_a.is_superset(&set_b)
328+
}
329+
330+
assert_eq!(is_superset(&[], &[]), true);
331+
assert_eq!(is_superset(&[], &[1, 2]), false);
332+
assert_eq!(is_superset(&[0], &[1, 2]), false);
333+
assert_eq!(is_superset(&[1], &[1, 2]), false);
334+
assert_eq!(is_superset(&[4], &[1, 2]), false);
335+
assert_eq!(is_superset(&[1, 4], &[1, 2]), false);
336+
assert_eq!(is_superset(&[1, 2], &[1, 2]), true);
337+
assert_eq!(is_superset(&[1, 2, 3], &[1, 3]), true);
338+
assert_eq!(is_superset(&[1, 2, 3], &[]), true);
339+
assert_eq!(is_superset(&[-1, 1, 2, 3], &[-1, 3]), true);
340+
341+
if cfg!(miri) {
342+
// Miri is too slow
343+
return;
344+
}
345+
346+
let large = Vec::from_iter(0..100);
347+
assert_eq!(is_superset(&[], &large), false);
348+
assert_eq!(is_superset(&large, &[]), true);
349+
assert_eq!(is_superset(&large, &[1]), true);
350+
assert_eq!(is_superset(&large, &[50, 99]), true);
351+
assert_eq!(is_superset(&large, &[100]), false);
352+
assert_eq!(is_superset(&large, &[0, 99]), true);
353+
assert_eq!(is_superset(&[-1], &large), false);
354+
assert_eq!(is_superset(&[0], &large), false);
355+
assert_eq!(is_superset(&[99, 100], &large), false);
356+
}
357+
322358
#[test]
323359
fn test_retain() {
324360
let mut set = BTreeSet::from([1, 2, 3, 4, 5, 6]);

0 commit comments

Comments
 (0)