use super::*;
use pretty_assertions::assert_eq;
#[test]
fn wrap_boundaries_preserve_whole_graphemes() {
for (text, width, expected) in [
("e\u{301}x", 1, vec!["e\u{301}", "x"]),
("π©π½βπ»x", 2, vec!["π©π½βπ»", "x"]),
("πΊπΈπ¨π¦", 2, vec!["πΊπΈ", "π¨π¦"]),
("1οΈβ£x", 1, vec!["1οΈβ£", "x"]),
(" \u{301}x", 1, vec![" \u{301}", "x"]),
] {
for ranges in [
wrap_line_at_whitespace_ranges(text, width),
hard_wrap_ranges(text, width),
] {
let rows: Vec<_> = ranges.into_iter().map(|range| &text[range]).collect();
assert_eq!(rows, expected, "text {text:?}, width {width}");
}
}
}