@@ -1706,6 +1706,20 @@ mod test_map {
1706
1706
assert_eq ! ( * m. get( & 2 ) . unwrap( ) , 4 ) ;
1707
1707
}
1708
1708
1709
+ #[ test]
1710
+ fn test_clone ( ) {
1711
+ let mut m = HashMap :: new ( ) ;
1712
+ assert_eq ! ( m. len( ) , 0 ) ;
1713
+ assert ! ( m. insert( 1 , 2 ) . is_none( ) ) ;
1714
+ assert_eq ! ( m. len( ) , 1 ) ;
1715
+ assert ! ( m. insert( 2 , 4 ) . is_none( ) ) ;
1716
+ assert_eq ! ( m. len( ) , 2 ) ;
1717
+ let m2 = m. clone ( ) ;
1718
+ assert_eq ! ( * m2. get( & 1 ) . unwrap( ) , 2 ) ;
1719
+ assert_eq ! ( * m2. get( & 2 ) . unwrap( ) , 4 ) ;
1720
+ assert_eq ! ( m2. len( ) , 2 ) ;
1721
+ }
1722
+
1709
1723
thread_local ! { static DROP_VECTOR : RefCell <Vec <isize >> = RefCell :: new( Vec :: new( ) ) }
1710
1724
1711
1725
#[ derive( Hash , PartialEq , Eq ) ]
@@ -1797,7 +1811,7 @@ mod test_map {
1797
1811
}
1798
1812
1799
1813
#[ test]
1800
- fn test_move_iter_drops ( ) {
1814
+ fn test_into_iter_drops ( ) {
1801
1815
DROP_VECTOR . with ( |v| {
1802
1816
* v. borrow_mut ( ) = vec ! [ 0 ; 200 ] ;
1803
1817
} ) ;
@@ -1862,11 +1876,35 @@ mod test_map {
1862
1876
}
1863
1877
1864
1878
#[ test]
1865
- fn test_empty_pop ( ) {
1879
+ fn test_empty_remove ( ) {
1866
1880
let mut m: HashMap < isize , bool > = HashMap :: new ( ) ;
1867
1881
assert_eq ! ( m. remove( & 0 ) , None ) ;
1868
1882
}
1869
1883
1884
+ #[ test]
1885
+ fn test_empty_entry ( ) {
1886
+ let mut m: HashMap < isize , bool > = HashMap :: new ( ) ;
1887
+ match m. entry ( 0 ) {
1888
+ Occupied ( _) => panic ! ( ) ,
1889
+ Vacant ( _) => { }
1890
+ }
1891
+ assert ! ( * m. entry( 0 ) . or_insert( true ) ) ;
1892
+ assert_eq ! ( m. len( ) , 1 ) ;
1893
+ }
1894
+
1895
+ #[ test]
1896
+ fn test_empty_iter ( ) {
1897
+ let mut m: HashMap < isize , bool > = HashMap :: new ( ) ;
1898
+ assert_eq ! ( m. drain( ) . next( ) , None ) ;
1899
+ assert_eq ! ( m. keys( ) . next( ) , None ) ;
1900
+ assert_eq ! ( m. values( ) . next( ) , None ) ;
1901
+ assert_eq ! ( m. iter( ) . next( ) , None ) ;
1902
+ assert_eq ! ( m. iter_mut( ) . next( ) , None ) ;
1903
+ assert_eq ! ( m. len( ) , 0 ) ;
1904
+ assert ! ( m. is_empty( ) ) ;
1905
+ assert_eq ! ( m. into_iter( ) . next( ) , None ) ;
1906
+ }
1907
+
1870
1908
#[ test]
1871
1909
fn test_lots_of_insertions ( ) {
1872
1910
let mut m = HashMap :: new ( ) ;
0 commit comments