Add a test for char::DecodeUtf16::size_hint

This commit is contained in:
Maybe Waffle 2022-01-27 00:50:34 +03:00
parent cd4245d318
commit 9c8cd1ff37

View File

@ -308,6 +308,31 @@ fn test_decode_utf16() {
check(&[0xD800, 0], &[Err(0xD800), Ok('\0')]);
}
#[test]
fn test_decode_utf16_size_hint() {
fn check(s: &[u16]) {
let mut iter = char::decode_utf16(s.iter().cloned());
loop {
let count = iter.clone().count();
let (lower, upper) = iter.size_hint();
assert!(
lower <= count && count <= upper.unwrap(),
"lower = {lower}, upper = {upper:?}"
);
if let None = iter.next() {
break;
}
}
}
check(&[0xD800, 0x41, 0x42]);
check(&[0xD800, 0]);
check(&[0xD834, 0x006d]);
}
#[test]
fn ed_iterator_specializations() {
// Check counting