Skip to content

Commit

Permalink
Add tests for Range*::nth
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonSapin committed Jul 8, 2017
1 parent de4afc6 commit 7a40307
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/libcore/tests/iter.rs
Expand Up @@ -1076,6 +1076,55 @@ fn test_range() {
(isize::MAX as usize + 2, Some(isize::MAX as usize + 2)));
}

#[test]
fn test_range_nth() {
assert_eq!((10..15).nth(0), Some(10));
assert_eq!((10..15).nth(1), Some(11));
assert_eq!((10..15).nth(4), Some(14));
assert_eq!((10..15).nth(5), None);

let mut r = 10..20;
assert_eq!(r.nth(2), Some(12));
assert_eq!(r, 13..20);
assert_eq!(r.nth(2), Some(15));
assert_eq!(r, 16..20);
assert_eq!(r.nth(10), None);
assert_eq!(r, 20..20);
}

#[test]
fn test_range_from_nth() {
assert_eq!((10..).nth(0), Some(10));
assert_eq!((10..).nth(1), Some(11));
assert_eq!((10..).nth(4), Some(14));

let mut r = 10..;
assert_eq!(r.nth(2), Some(12));
assert_eq!(r, 13..);
assert_eq!(r.nth(2), Some(15));
assert_eq!(r, 16..);
assert_eq!(r.nth(10), Some(26));
assert_eq!(r, 27..);
}

#[test]
fn test_range_inclusive_nth() {
assert_eq!((10...15).nth(0), Some(10));
assert_eq!((10...15).nth(1), Some(11));
assert_eq!((10...15).nth(5), Some(15));
assert_eq!((10...15).nth(6), None);

let mut r = 10_u8...20;
assert_eq!(r.nth(2), Some(12));
assert_eq!(r, 13...20);
assert_eq!(r.nth(2), Some(15));
assert_eq!(r, 16...20);
assert_eq!(r.is_empty(), false);
assert_eq!(r.nth(10), None);
assert_eq!(r.is_empty(), true);
assert_eq!(r, 1...0); // We may not want to document/promise this detail
}

#[test]
fn test_range_step() {
#![allow(deprecated)]
Expand Down
2 changes: 2 additions & 0 deletions src/libcore/tests/lib.rs
Expand Up @@ -18,12 +18,14 @@
#![feature(core_private_diy_float)]
#![feature(dec2flt)]
#![feature(decode_utf8)]
#![feature(exact_size_is_empty)]
#![feature(fixed_size_array)]
#![feature(flt2dec)]
#![feature(fmt_internals)]
#![feature(iterator_step_by)]
#![feature(i128_type)]
#![feature(inclusive_range)]
#![feature(inclusive_range_syntax)]
#![feature(iter_rfind)]
#![feature(libc)]
#![feature(nonzero)]
Expand Down

0 comments on commit 7a40307

Please sign in to comment.