@@ -178,6 +178,33 @@ fn test_range_small() {
178
178
assert_eq ! ( j, size - 2 ) ;
179
179
}
180
180
181
+ #[ test]
182
+ fn test_range_inclusive ( ) {
183
+ let size = 500 ;
184
+
185
+ let map: BTreeMap < _ , _ > = ( 0 ...size) . map ( |i| ( i, i) ) . collect ( ) ;
186
+
187
+ fn check < ' a , L , R > ( lhs : L , rhs : R )
188
+ where L : IntoIterator < Item =( & ' a i32 , & ' a i32 ) > ,
189
+ R : IntoIterator < Item =( & ' a i32 , & ' a i32 ) > ,
190
+ {
191
+ let lhs: Vec < _ > = lhs. into_iter ( ) . collect ( ) ;
192
+ let rhs: Vec < _ > = rhs. into_iter ( ) . collect ( ) ;
193
+ assert_eq ! ( lhs, rhs) ;
194
+ }
195
+
196
+ check ( map. range ( size + 1 ...size + 1 ) , vec ! [ ] ) ;
197
+ check ( map. range ( size...size) , vec ! [ ( & size, & size) ] ) ;
198
+ check ( map. range ( size...size + 1 ) , vec ! [ ( & size, & size) ] ) ;
199
+ check ( map. range ( 0 ...0 ) , vec ! [ ( & 0 , & 0 ) ] ) ;
200
+ check ( map. range ( 0 ...size - 1 ) , map. range ( ..size) ) ;
201
+ check ( map. range ( -1 ...-1 ) , vec ! [ ] ) ;
202
+ check ( map. range ( -1 ...size) , map. range ( ..) ) ;
203
+ check ( map. range ( 5 ...8 ) , vec ! [ ( & 5 , & 5 ) , ( & 6 , & 6 ) , ( & 7 , & 7 ) , ( & 8 , & 8 ) ] ) ;
204
+ check ( map. range ( -1 ...0 ) , vec ! [ ( & 0 , & 0 ) ] ) ;
205
+ check ( map. range ( -1 ...2 ) , vec ! [ ( & 0 , & 0 ) , ( & 1 , & 1 ) , ( & 2 , & 2 ) ] ) ;
206
+ }
207
+
181
208
#[ test]
182
209
fn test_range_equal_empty_cases ( ) {
183
210
let map: BTreeMap < _ , _ > = ( 0 ..5 ) . map ( |i| ( i, i) ) . collect ( ) ;
0 commit comments