@@ -178,6 +178,43 @@ 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(...size), map.range(..));
204
+ check(map.range(...200), map.range(..201));
205
+ check(map.range(5...8), vec![(&5, &5), (&6, &6), (&7, &7), (&8, &8)]);
206
+ check(map.range(-1...0), vec![(&0, &0)]);
207
+ check(map.range(-1...2), vec![(&0, &0), (&1, &1), (&2, &2)]);
208
+ }
209
+
210
+ #[test]
211
+ fn test_range_inclusive_max_value() {
212
+ let max = ::std::usize::MAX;
213
+ let map: BTreeMap<_, _> = vec![(max, 0)].into_iter().collect();
214
+
215
+ assert_eq!(map.range(max...max).collect::<Vec<_>>(), &[(&max, &0)]);
216
+ }
217
+
181
218
#[test]
182
219
fn test_range_equal_empty_cases() {
183
220
let map: BTreeMap<_, _> = (0..5).map(|i| (i, i)).collect();
0 commit comments