Skip to content

Commit 224afad

Browse files
authored
Rollup merge of #96034 - Gumichocopengin8:test/btree-set, r=Dylan-DPC
[test] Add test cases of untested functions for BTreeSet - add [`is_superset()`](https://doc.rust-lang.org/std/collections/struct.BTreeSet.html#method.is_superset) and [`remove()`](https://doc.rust-lang.org/std/collections/struct.BTreeSet.html#method.remove) test cases for BTreeSet since these functions has no test cases.
2 parents 937b0a0 + 50c339e commit 224afad

File tree

1 file changed

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

1 file changed

+56
-0
lines changed

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

+56
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]);
@@ -391,6 +427,26 @@ fn test_clear() {
391427
x.clear();
392428
assert!(x.is_empty());
393429
}
430+
#[test]
431+
fn test_remove() {
432+
let mut x = BTreeSet::new();
433+
assert!(x.is_empty());
434+
435+
x.insert(1);
436+
x.insert(2);
437+
x.insert(3);
438+
x.insert(4);
439+
440+
assert_eq!(x.remove(&2), true);
441+
assert_eq!(x.remove(&0), false);
442+
assert_eq!(x.remove(&5), false);
443+
assert_eq!(x.remove(&1), true);
444+
assert_eq!(x.remove(&2), false);
445+
assert_eq!(x.remove(&3), true);
446+
assert_eq!(x.remove(&4), true);
447+
assert_eq!(x.remove(&4), false);
448+
assert!(x.is_empty());
449+
}
394450

395451
#[test]
396452
fn test_zip() {

0 commit comments

Comments
 (0)