diff options
| author | Andrea Canciani <ranma42@gmail.com> | 2016-05-04 12:08:11 +0200 |
|---|---|---|
| committer | Andrea Canciani <ranma42@gmail.com> | 2016-05-04 12:23:10 +0200 |
| commit | 8169fa2fe84b6e3944f7362d3e73ba763a2da1d9 (patch) | |
| tree | 1fd377e045b352db022571dfa2f3c9cb54f0b280 | |
| parent | 167b510b7c59ad4d87993059401b94a5e1d1f8ff (diff) | |
| download | rust-8169fa2fe84b6e3944f7362d3e73ba763a2da1d9.tar.gz rust-8169fa2fe84b6e3944f7362d3e73ba763a2da1d9.zip | |
Add test for `EscapeUnicode` specializations
| -rw-r--r-- | src/libcoretest/char.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/libcoretest/char.rs b/src/libcoretest/char.rs index 41fd742c9e0..e959e71daf7 100644 --- a/src/libcoretest/char.rs +++ b/src/libcoretest/char.rs @@ -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}'); +} |
