Skip to content

Commit 8b80368

Browse files
committed
More tests
1 parent 667734e commit 8b80368

File tree

3 files changed

+38
-29
lines changed

3 files changed

+38
-29
lines changed

src/doc/unstable-book/src/SUMMARY.md

-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@
195195
- [sort_internals](library-features/sort-internals.md)
196196
- [sort_unstable](library-features/sort-unstable.md)
197197
- [splice](library-features/splice.md)
198-
- [step_by](library-features/step-by.md)
199198
- [step_trait](library-features/step-trait.md)
200199
- [str_checked_slicing](library-features/str-checked-slicing.md)
201200
- [str_escape](library-features/str-escape.md)

src/doc/unstable-book/src/library-features/step-by.md

-7
This file was deleted.

src/libcore/tests/iter.rs

+38-21
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,6 @@ use core::iter::*;
1212
use core::{i16, usize, isize};
1313
use core::ops::RangeInclusive;
1414

15-
// FIXME #27741: This is here to simplify calling Iterator::step_by. Remove
16-
// once Range::step_by is completely gone (not just deprecated).
17-
trait IterEx: Sized {
18-
fn iter_step_by(self, n: usize) -> StepBy<Self>;
19-
}
20-
impl<I:Iterator> IterEx for I {
21-
fn iter_step_by(self, n: usize) -> StepBy<Self> { self.step_by(n) }
22-
}
23-
2415
#[test]
2516
fn test_lt() {
2617
let empty: [isize; 0] = [];
@@ -76,7 +67,7 @@ fn test_multi_iter() {
7667

7768
#[test]
7869
fn test_counter_from_iter() {
79-
let it = (0..).iter_step_by(5).take(10);
70+
let it = (0..).step_by(5).take(10);
8071
let xs: Vec<isize> = FromIterator::from_iter(it);
8172
assert_eq!(xs, [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]);
8273
}
@@ -94,7 +85,7 @@ fn test_iterator_chain() {
9485
}
9586
assert_eq!(i, expected.len());
9687

97-
let ys = (30..).iter_step_by(10).take(4);
88+
let ys = (30..).step_by(10).take(4);
9889
let it = xs.iter().cloned().chain(ys);
9990
let mut i = 0;
10091
for x in it {
@@ -156,13 +147,13 @@ fn test_iterator_chain_find() {
156147
#[test]
157148
fn test_iterator_step_by() {
158149
// Identity
159-
let mut it = (0..).iter_step_by(1).take(3);
150+
let mut it = (0..).step_by(1).take(3);
160151
assert_eq!(it.next(), Some(0));
161152
assert_eq!(it.next(), Some(1));
162153
assert_eq!(it.next(), Some(2));
163154
assert_eq!(it.next(), None);
164155

165-
let mut it = (0..).iter_step_by(3).take(4);
156+
let mut it = (0..).step_by(3).take(4);
166157
assert_eq!(it.next(), Some(0));
167158
assert_eq!(it.next(), Some(3));
168159
assert_eq!(it.next(), Some(6));
@@ -173,7 +164,7 @@ fn test_iterator_step_by() {
173164
#[test]
174165
#[should_panic]
175166
fn test_iterator_step_by_zero() {
176-
let mut it = (0..).iter_step_by(0);
167+
let mut it = (0..).step_by(0);
177168
it.next();
178169
}
179170

@@ -252,7 +243,7 @@ fn test_iterator_step_by_size_hint() {
252243

253244
#[test]
254245
fn test_filter_map() {
255-
let it = (0..).iter_step_by(1).take(10)
246+
let it = (0..).step_by(1).take(10)
256247
.filter_map(|x| if x % 2 == 0 { Some(x*x) } else { None });
257248
assert_eq!(it.collect::<Vec<usize>>(), [0*0, 2*2, 4*4, 6*6, 8*8]);
258249
}
@@ -654,7 +645,7 @@ fn test_iterator_scan() {
654645
fn test_iterator_flat_map() {
655646
let xs = [0, 3, 6];
656647
let ys = [0, 1, 2, 3, 4, 5, 6, 7, 8];
657-
let it = xs.iter().flat_map(|&x| (x..).iter_step_by(1).take(3));
648+
let it = xs.iter().flat_map(|&x| (x..).step_by(1).take(3));
658649
let mut i = 0;
659650
for x in it {
660651
assert_eq!(x, ys[i]);
@@ -680,13 +671,13 @@ fn test_inspect() {
680671
#[test]
681672
fn test_cycle() {
682673
let cycle_len = 3;
683-
let it = (0..).iter_step_by(1).take(cycle_len).cycle();
674+
let it = (0..).step_by(1).take(cycle_len).cycle();
684675
assert_eq!(it.size_hint(), (usize::MAX, None));
685676
for (i, x) in it.take(100).enumerate() {
686677
assert_eq!(i % cycle_len, x);
687678
}
688679

689-
let mut it = (0..).iter_step_by(1).take(0).cycle();
680+
let mut it = (0..).step_by(1).take(0).cycle();
690681
assert_eq!(it.size_hint(), (0, Some(0)));
691682
assert_eq!(it.next(), None);
692683
}
@@ -765,7 +756,7 @@ fn test_iterator_min() {
765756

766757
#[test]
767758
fn test_iterator_size_hint() {
768-
let c = (0..).iter_step_by(1);
759+
let c = (0..).step_by(1);
769760
let v: &[_] = &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
770761
let v2 = &[10, 11, 12];
771762
let vi = v.iter();
@@ -1090,13 +1081,16 @@ fn test_range_step() {
10901081
#![allow(deprecated)]
10911082

10921083
assert_eq!((0..20).step_by(5).collect::<Vec<isize>>(), [0, 5, 10, 15]);
1084+
assert_eq!((1..21).rev().step_by(5).collect::<Vec<isize>>(), [20, 15, 10, 5]);
10931085
assert_eq!((200..255).step_by(50).collect::<Vec<u8>>(), [200, 250]);
10941086
assert_eq!((200..-5).step_by(1).collect::<Vec<isize>>(), []);
10951087
assert_eq!((200..200).step_by(1).collect::<Vec<isize>>(), []);
10961088

10971089
assert_eq!((0..20).step_by(1).size_hint(), (20, Some(20)));
10981090
assert_eq!((0..20).step_by(21).size_hint(), (1, Some(1)));
10991091
assert_eq!((0..20).step_by(5).size_hint(), (4, Some(4)));
1092+
assert_eq!((1..21).rev().step_by(5).size_hint(), (4, Some(4)));
1093+
assert_eq!((1..21).rev().step_by(6).size_hint(), (4, Some(4)));
11001094
assert_eq!((20..-5).step_by(1).size_hint(), (0, Some(0)));
11011095
assert_eq!((20..20).step_by(1).size_hint(), (0, Some(0)));
11021096
assert_eq!((i16::MIN..i16::MAX).step_by(i16::MAX as usize).size_hint(), (3, Some(3)));
@@ -1137,6 +1131,26 @@ fn test_range_nth() {
11371131
assert_eq!(r.nth(0), Some(!0 - 1));
11381132
assert_eq!(r.nth(0), Some(!0));
11391133
assert_eq!(r.nth(0), None);
1134+
let mut r = 0i32...!0;
1135+
assert_eq!(r.nth(!0), None);
1136+
}
1137+
1138+
#[test]
1139+
fn test_rangefrom_nth() {
1140+
let mut r = (!0u32 - 2)..;
1141+
assert_eq!(r.nth(0), Some(!0 - 2));
1142+
assert_eq!(r.nth(0), Some(!0 - 1));
1143+
let mut r = 42..;
1144+
assert_eq!(r.nth(2), Some(44));
1145+
assert_eq!(r.nth(2), Some(47));
1146+
assert_eq!(r.nth(2), Some(50));
1147+
}
1148+
1149+
#[test]
1150+
#[should_panic] // This could be fixed somehow eventually maybe?
1151+
fn test_rangefrom_nth_oflow() {
1152+
let mut r = (!0u32)..;
1153+
assert_eq!(r.nth(0), Some(!0));
11401154
}
11411155

11421156
#[test]
@@ -1153,7 +1167,7 @@ fn test_usize_range_count_oflow() {
11531167

11541168
#[test]
11551169
#[should_panic]
1156-
fn test_usize_range_no_last() {
1170+
fn test_rangefrom_no_last() {
11571171
assert_eq!((0..).last(), None);
11581172
}
11591173

@@ -1167,7 +1181,10 @@ fn test_isize_range_count_oflow() {
11671181
fn test_range_last() {
11681182
assert_eq!((0..10).last(), Some(9));
11691183
assert_eq!((0u32..!0).last(), Some(!0 - 1));
1170-
assert_eq!(RangeInclusive { start: 0, end: 10 }.last(), Some(10));
1184+
assert_eq!((11..10).last(), None);
1185+
assert_eq!(RangeInclusive { start: 0u32, end: 10 }.last(), Some(10));
1186+
assert_eq!(RangeInclusive { start: 0u32, end: !0 }.last(), Some(!0));
1187+
assert_eq!(RangeInclusive { start: 40, end: 39 }.last(), None);
11711188
}
11721189

11731190
#[test]

0 commit comments

Comments
 (0)