@@ -70,19 +70,84 @@ impl<K: Key, V> Default for RudyMap<K, V> {
70
70
}
71
71
}
72
72
73
+ #[ cfg( test) ]
74
+ mod test {
75
+ use super :: * ;
76
+
77
+ #[ test]
78
+ fn test_insert_get_1 ( ) {
79
+ let mut map = RudyMap :: < usize , usize > :: new ( ) ;
80
+ map. insert ( 4usize , 10usize ) ;
81
+ assert_eq ! ( map. get( 4 ) , Some ( & 10 ) ) ;
82
+ }
73
83
74
- #[ test]
75
- fn test_insert_get_1 ( ) {
76
- let mut map = RudyMap :: < usize , usize > :: new ( ) ;
77
- map. insert ( 4usize , 10usize ) ;
78
- assert_eq ! ( map. get( 4 ) , Some ( & 10 ) ) ;
79
- }
84
+ #[ test]
85
+ fn test_insert_get_2 ( ) {
86
+ let mut map = RudyMap :: < usize , usize > :: new ( ) ;
87
+ map. insert ( 0usize , 10usize ) ;
88
+ map. insert ( 1usize , 20usize ) ;
89
+ assert_eq ! ( map. get( 0 ) , Some ( & 10 ) ) ;
90
+ assert_eq ! ( map. get( 1 ) , Some ( & 20 ) ) ;
91
+ }
92
+
93
+ #[ test]
94
+ fn test_contains_key ( ) {
95
+ let mut map = RudyMap :: < u32 , u32 > :: new ( ) ;
96
+ assert_eq ! ( map. contains_key( 0 ) , false ) ;
97
+ assert_eq ! ( map. contains_key( 1 ) , false ) ;
98
+
99
+ assert_eq ! ( map. insert( 0 , 0 ) , None ) ;
100
+ assert_eq ! ( map. contains_key( 0 ) , true ) ;
101
+ assert_eq ! ( map. contains_key( 1 ) , false ) ;
102
+
103
+ assert_eq ! ( map. remove( 0 ) , Some ( 0 ) ) ;
104
+ assert_eq ! ( map. contains_key( 0 ) , false ) ;
105
+ assert_eq ! ( map. contains_key( 1 ) , false ) ;
106
+ }
107
+
108
+ #[ test]
109
+ fn test_len ( ) {
110
+ let mut map = RudyMap :: < u32 , u32 > :: new ( ) ;
111
+ assert_eq ! ( map. len( ) , 0 ) ;
112
+ assert_eq ! ( map. is_empty( ) , true ) ;
113
+
114
+ assert_eq ! ( map. insert( 0 , 0 ) , None ) ;
115
+ assert_eq ! ( map. len( ) , 1 ) ;
116
+ assert_eq ! ( map. is_empty( ) , false ) ;
80
117
81
- #[ test]
82
- fn test_insert_get_2 ( ) {
83
- let mut map = RudyMap :: < usize , usize > :: new ( ) ;
84
- map. insert ( 0usize , 10usize ) ;
85
- map. insert ( 1usize , 20usize ) ;
86
- assert_eq ! ( map. get( 0 ) , Some ( & 10 ) ) ;
87
- assert_eq ! ( map. get( 1 ) , Some ( & 20 ) ) ;
118
+ assert_eq ! ( map. insert( 1 , 1 ) , None ) ;
119
+ assert_eq ! ( map. len( ) , 2 ) ;
120
+ assert_eq ! ( map. is_empty( ) , false ) ;
121
+
122
+ assert_eq ! ( map. insert( 0 , 2 ) , Some ( 0 ) ) ;
123
+ assert_eq ! ( map. len( ) , 2 ) ;
124
+ assert_eq ! ( map. is_empty( ) , false ) ;
125
+
126
+ assert_eq ! ( map. remove( 0 ) , Some ( 2 ) ) ;
127
+ assert_eq ! ( map. len( ) , 1 ) ;
128
+ assert_eq ! ( map. is_empty( ) , false ) ;
129
+
130
+ assert_eq ! ( map. remove( 1 ) , Some ( 1 ) ) ;
131
+ assert_eq ! ( map. len( ) , 0 ) ;
132
+ assert_eq ! ( map. is_empty( ) , true ) ;
133
+ }
134
+
135
+ #[ test]
136
+ fn test_get_mut ( ) {
137
+ let mut map = RudyMap :: < u32 , u32 > :: new ( ) ;
138
+ assert ! ( map. get( 0 ) . is_none( ) ) ;
139
+ assert ! ( map. get_mut( 0 ) . is_none( ) ) ;
140
+
141
+ assert_eq ! ( map. insert( 0 , 0 ) , None ) ;
142
+ assert_eq ! ( map. get( 0 ) , Some ( & 0 ) ) ;
143
+ assert_eq ! ( map. get_mut( 0 ) , Some ( & mut 0 ) ) ;
144
+ assert_eq ! ( map. get( 1 ) , None ) ;
145
+ assert_eq ! ( map. get_mut( 1 ) , None ) ;
146
+
147
+ * map. get_mut ( 0 ) . unwrap ( ) += 42 ;
148
+ assert_eq ! ( map. get( 0 ) , Some ( & 42 ) ) ;
149
+ assert_eq ! ( map. get_mut( 0 ) , Some ( & mut 42 ) ) ;
150
+
151
+ map. remove ( 0 ) ;
152
+ }
88
153
}
0 commit comments