diff options
| author | ruki <[email protected]> | 2026-01-20 23:38:02 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-01-20 23:38:02 +0800 |
| commit | a9d5fe27bb69cc35022e9c8b80ac9d5f89f570c0 (patch) | |
| tree | 7d48629cd895877d91fdab0e9648d03419ca51f1 /tests/modules/utf8/test.lua | |
| parent | 92423451b623e79ac464d388bfb1bfed2780b792 (diff) | |
add utf8.sub and lastof
Diffstat (limited to 'tests/modules/utf8/test.lua')
| -rw-r--r-- | tests/modules/utf8/test.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/modules/utf8/test.lua b/tests/modules/utf8/test.lua index f342c8402..51da441d9 100644 --- a/tests/modules/utf8/test.lua +++ b/tests/modules/utf8/test.lua @@ -62,3 +62,47 @@ end function test_charpattern(t) t:require(utf8.charpattern) end + +function test_sub(t) + t:are_equal(utf8.sub("ABC", 1, 1), "A") + t:are_equal(utf8.sub("ABC", 2, 2), "B") + t:are_equal(utf8.sub("ABC", 1, 2), "AB") + t:are_equal(utf8.sub("你好", 1, 1), "你") + t:are_equal(utf8.sub("你好", 2, 2), "好") + t:are_equal(utf8.sub("你好", 1, 2), "你好") + + -- mixed + t:are_equal(utf8.sub("A你好B", 2, 3), "你好") + t:are_equal(utf8.sub("A你好B", 1, 3), "A你好") + t:are_equal(utf8.sub("A你好B", 2, 4), "你好B") + + -- negative + t:are_equal(utf8.sub("ABC", -1), "C") + t:are_equal(utf8.sub("ABC", -2), "BC") + t:are_equal(utf8.sub("你好", -1), "好") + t:are_equal(utf8.sub("你好", -2), "你好") + t:are_equal(utf8.sub("你好", 1, -1), "你好") + t:are_equal(utf8.sub("你好", 1, -2), "你") + + -- out of bounds + t:are_equal(utf8.sub("ABC", 4), "") + t:are_equal(utf8.sub("ABC", 1, 5), "ABC") + t:are_equal(utf8.sub("ABC", 0), "ABC") + t:are_equal(utf8.sub("ABC", -10), "ABC") +end + +function test_lastof(t) + t:are_equal(utf8.lastof("ABC", "A"), 1) + t:are_equal(utf8.lastof("ABC", "B"), 2) + t:are_equal(utf8.lastof("ABC", "C"), 3) + t:are_equal(utf8.lastof("ABCA", "A"), 4) + + t:are_equal(utf8.lastof("你好", "你"), 1) + t:are_equal(utf8.lastof("你好", "好"), 2) + t:are_equal(utf8.lastof("你好你", "你"), 3) + + t:are_equal(utf8.lastof("A你好A", "A"), 4) + t:are_equal(utf8.lastof("A你好A", "好"), 3) + + t:are_equal(utf8.lastof("ABC", "D"), nil) +end |
