Skip to content

Commit 35833e7

Browse files
committed
test: cover Unicode width edge cases
1 parent 6849708 commit 35833e7

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

unicodewidth_test.mbt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ test "test_control_line_break" {
234234
assert_str_width("1\t2\r\n3\u{85}4", 7, 7)
235235
assert_str_width("\r\u{FE0F}\n", 2, 2)
236236
assert_str_width("\r\u{200D}\n", 2, 2)
237+
assert_str_width("\n\u{200D}🕊️", 3, 3)
237238
}
238239

239240
///|
@@ -286,6 +287,12 @@ test "test_hebrew_alef_lamed" {
286287
assert_str_width("\u{5DC}", 1, 1)
287288
assert_str_width("\u{5D0}\u{5DC}", 2, 2)
288289
assert_str_width("\u{5D0}\u{200D}\u{5DC}", 1, 1)
290+
assert_str_width("\u{5D0}\u{34F}\u{200D}\u{5DC}", 1, 1)
291+
assert_str_width("\u{5D0}\u{180B}\u{200D}\u{5DC}", 1, 1)
292+
assert_str_width("\u{5D0}\u{180F}\u{200D}\u{5DC}", 1, 1)
293+
assert_str_width("\u{5D0}\u{E0100}\u{200D}\u{5DC}", 1, 1)
294+
assert_str_width("\u{5D0}\u{FE00}\u{34F}\u{200D}\u{5DC}", 1, 1)
295+
assert_str_width("\u{5D0}\u{FE01}\u{34F}\u{200D}\u{5DC}", 1, 1)
289296
assert_str_width(
290297
"\u{5D0}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{200D}\u{5DC}", 1,
291298
1,
@@ -447,6 +454,7 @@ test "test_emoji_zwj" {
447454
assert_str_width("🧑‍🤝‍🧑", 2, 2)
448455
assert_str_width("🇮🇱🕊️🇵🇸", 6, 6)
449456
assert_str_width("🇵🇸\u{200D}🕊️\u{200D}🇮🇱", 2, 2)
457+
assert_str_width("#\u{FE0F}\u{20E3}\u{200D}Ⓜ️", 3, 3)
450458
assert_str_width("🇮🇱\u{200D}🕊️\u{200D}\u{200D}🇵🇸", 4, 4)
451459
assert_str_width("🇵🇸\u{200D}\u{200D}🕊️\u{200D}🇮🇱", 4, 4)
452460
assert_str_width("🇦🇦\u{200D}🇦🇦", 2, 2)
@@ -489,6 +497,10 @@ test "test_emoji_zwj" {
489497
assert_str_width(
490498
"🏴\u{E0031}\u{E0031}\u{E0031}\u{E0063}\u{E007F}\u{200D}Ⓜ️", 2, 2,
491499
)
500+
assert_str_width(
501+
"🏴\u{E0061}\u{E0061}\u{E0061}\u{E0061}\u{E0061}\u{E0061}\u{E007F}\u{200D}Ⓜ️",
502+
2, 2,
503+
)
492504
}
493505

494506
///|
@@ -497,6 +509,10 @@ test "test_kirat_rai_vowel_signs" {
497509
assert_str_width("\u{16D68}", 1, 1)
498510
assert_str_width("\u{16D69}", 1, 1)
499511
assert_str_width("\u{16D63}", 1, 1)
512+
assert_str_width("\u{16D63}\u{16D67}", 1, 1)
513+
assert_str_width("\u{16D68}\u{16D67}", 2, 2)
514+
assert_str_width("\u{16D69}\u{16D67}", 1, 1)
515+
assert_str_width("\u{16D63}\u{16D68}", 1, 1)
500516
assert_str_width("\u{16D67}\u{16D67}", 2, 2)
501517
}
502518

0 commit comments

Comments
 (0)