@@ -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]
18821950fn test_insert_into_full_height_0 ( ) {
18831951 let size = node:: CAPACITY ;
0 commit comments