Open
Description
use unicode_segmentation::{GraphemeCursor, GraphemeIncomplete};
#[test]
fn test_graphemes_chunked() {
use GraphemeIncomplete::*;
let chunk0 = "👩"; // 4 bytes
let chunk1 = "\u{200d}🔬"; // 3 bytes + 4 bytes
let full = &(chunk0.to_string() + chunk1); // 👩🔬
let mut cur = GraphemeCursor::new(0, full.len(), true);
assert_eq!(cur.next_boundary(chunk0, 0), Err(NextChunk));
match cur.next_boundary(chunk1, chunk0.len()) {
Ok(res) => assert_eq!(res, Some(11)),
Err(PreContext(_)) => {
cur.provide_context(chunk0, 0);
assert_eq!(cur.next_boundary(chunk1, chunk0.len()), Ok(Some(11)));
}
_ => unreachable!(),
}
}
the last assert panics and says that it expected Ok(Some(7))
, when instead it should be Ok(Some(11))
Metadata
Metadata
Assignees
Labels
No labels