Skip to content

Commit 4117e8c

Browse files
test: add pop_first() pop_last() test cases for BTreeSet
1 parent f387c93 commit 4117e8c

File tree

1 file changed

+77
-9
lines changed
  • library/alloc/src/collections/btree/map

1 file changed

+77
-9
lines changed

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

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,11 @@ fn test_range_finding_ill_order_in_range_ord() {
791791
impl Ord for EvilTwin {
792792
fn cmp(&self, other: &Self) -> Ordering {
793793
let ord = self.0.cmp(&other.0);
794-
if COMPARES.fetch_add(1, SeqCst) > 0 { ord.reverse() } else { ord }
794+
if COMPARES.fetch_add(1, SeqCst) > 0 {
795+
ord.reverse()
796+
} else {
797+
ord
798+
}
795799
}
796800
}
797801

@@ -943,13 +947,12 @@ mod test_drain_filter {
943947
fn mutating_and_keeping() {
944948
let pairs = (0..3).map(|i| (i, i));
945949
let mut map = BTreeMap::from_iter(pairs);
946-
assert!(
947-
map.drain_filter(|_, v| {
950+
assert!(map
951+
.drain_filter(|_, v| {
948952
*v += 6;
949953
false
950954
})
951-
.eq(iter::empty())
952-
);
955+
.eq(iter::empty()));
953956
assert!(map.keys().copied().eq(0..3));
954957
assert!(map.values().copied().eq(6..9));
955958
map.check();
@@ -960,13 +963,12 @@ mod test_drain_filter {
960963
fn mutating_and_removing() {
961964
let pairs = (0..3).map(|i| (i, i));
962965
let mut map = BTreeMap::from_iter(pairs);
963-
assert!(
964-
map.drain_filter(|_, v| {
966+
assert!(map
967+
.drain_filter(|_, v| {
965968
*v += 6;
966969
true
967970
})
968-
.eq((0..3).map(|i| (i, i + 6)))
969-
);
971+
.eq((0..3).map(|i| (i, i + 6))));
970972
assert!(map.is_empty());
971973
map.check();
972974
}
@@ -1878,6 +1880,72 @@ fn test_first_last_entry() {
18781880
a.check();
18791881
}
18801882

1883+
#[test]
1884+
fn test_pop_first_last() {
1885+
let mut map = BTreeMap::new();
1886+
assert_eq!(map.pop_first(), None);
1887+
assert_eq!(map.pop_last(), None);
1888+
1889+
map.insert(1, 10);
1890+
map.insert(2, 20);
1891+
map.insert(3, 30);
1892+
map.insert(4, 40);
1893+
1894+
assert_eq!(map.len(), 4);
1895+
1896+
let (key, val) = map.pop_first().unwrap();
1897+
assert_eq!(key, 1);
1898+
assert_eq!(val, 10);
1899+
assert_eq!(map.len(), 3);
1900+
1901+
let (key, val) = map.pop_first().unwrap();
1902+
assert_eq!(key, 2);
1903+
assert_eq!(val, 20);
1904+
assert_eq!(map.len(), 2);
1905+
let (key, val) = map.pop_last().unwrap();
1906+
assert_eq!(key, 4);
1907+
assert_eq!(val, 40);
1908+
assert_eq!(map.len(), 1);
1909+
1910+
map.insert(5, 50);
1911+
map.insert(6, 60);
1912+
assert_eq!(map.len(), 3);
1913+
1914+
let (key, val) = map.pop_first().unwrap();
1915+
assert_eq!(key, 3);
1916+
assert_eq!(val, 30);
1917+
assert_eq!(map.len(), 2);
1918+
1919+
let (key, val) = map.pop_last().unwrap();
1920+
assert_eq!(key, 6);
1921+
assert_eq!(val, 60);
1922+
assert_eq!(map.len(), 1);
1923+
1924+
let (key, val) = map.pop_last().unwrap();
1925+
assert_eq!(key, 5);
1926+
assert_eq!(val, 50);
1927+
assert_eq!(map.len(), 0);
1928+
1929+
assert_eq!(map.pop_first(), None);
1930+
assert_eq!(map.pop_last(), None);
1931+
1932+
map.insert(7, 70);
1933+
map.insert(8, 80);
1934+
1935+
let (key, val) = map.pop_last().unwrap();
1936+
assert_eq!(key, 8);
1937+
assert_eq!(val, 80);
1938+
assert_eq!(map.len(), 1);
1939+
1940+
let (key, val) = map.pop_last().unwrap();
1941+
assert_eq!(key, 7);
1942+
assert_eq!(val, 70);
1943+
assert_eq!(map.len(), 0);
1944+
1945+
assert_eq!(map.pop_first(), None);
1946+
assert_eq!(map.pop_last(), None);
1947+
}
1948+
18811949
#[test]
18821950
fn test_insert_into_full_height_0() {
18831951
let size = node::CAPACITY;

0 commit comments

Comments
 (0)