Skip to content

Commit 9c8cd1f

Browse files
committed
Add a test for char::DecodeUtf16::size_hint
1 parent cd4245d commit 9c8cd1f

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

library/core/tests/char.rs

+25
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,31 @@ fn test_decode_utf16() {
308308
check(&[0xD800, 0], &[Err(0xD800), Ok('\0')]);
309309
}
310310

311+
#[test]
312+
fn test_decode_utf16_size_hint() {
313+
fn check(s: &[u16]) {
314+
let mut iter = char::decode_utf16(s.iter().cloned());
315+
316+
loop {
317+
let count = iter.clone().count();
318+
let (lower, upper) = iter.size_hint();
319+
320+
assert!(
321+
lower <= count && count <= upper.unwrap(),
322+
"lower = {lower}, upper = {upper:?}"
323+
);
324+
325+
if let None = iter.next() {
326+
break;
327+
}
328+
}
329+
}
330+
331+
check(&[0xD800, 0x41, 0x42]);
332+
check(&[0xD800, 0]);
333+
check(&[0xD834, 0x006d]);
334+
}
335+
311336
#[test]
312337
fn ed_iterator_specializations() {
313338
// Check counting

0 commit comments

Comments
 (0)