Skip to content

Commit

Permalink
Add test for EscapeUnicode specializations
Browse files Browse the repository at this point in the history
  • Loading branch information
ranma42 committed May 4, 2016
1 parent 167b510 commit 8169fa2
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/libcoretest/char.rs
Expand Up @@ -262,4 +262,37 @@ fn ed_iterator_specializations() {
assert_eq!('\''.escape_default().last(), Some('\''));
}

#[test]
fn eu_iterator_specializations() {
fn check(c: char) {
let len = c.escape_unicode().count();

// Check OoB
assert_eq!(c.escape_unicode().nth(len), None);

// For all possible in-bound offsets
let mut iter = c.escape_unicode();
for offset in 0..len {
// Check last
assert_eq!(iter.clone().last(), Some('}'));

// Check counting
assert_eq!(iter.clone().count(), len - offset);

// Check nth
assert_eq!(c.escape_unicode().nth(offset), iter.next());
}

// Check post-last
assert_eq!(iter.clone().last(), None);
assert_eq!(iter.clone().count(), 0);
}

check('\u{0}');
check('\u{1}');
check('\u{12}');
check('\u{123}');
check('\u{1234}');
check('\u{12340}');
check('\u{10FFFF}');
}

0 comments on commit 8169fa2

Please sign in to comment.