Skip to content

Commit c2f5f2a

Browse files
feat(test): test emojis
1 parent 5d72534 commit c2f5f2a

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

mypyc/test-data/run-strings.test

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -862,3 +862,44 @@ def test_count_multi_start_end() -> None:
862862
assert string.count("aaa", 0, 12) == 1, string.count("aaa", 0, 12)
863863
assert string.count("bbb", 0, 12) == 2, string.count("bbb", 0, 12)
864864
assert string.count("ccc", 0, 12) == 1, string.count("ccc", 0, 12)
865+
def test_count_emoji() -> None:
866+
string = "ñbñ🚀ñ"
867+
assert string.count("😴") == 1 # 😴 appeared once
868+
assert string.count("🚀") == 2 # 🚀 launched twice
869+
assert string.count("ñ") == 2 # ñ hanging around twice
870+
def test_count_start_emoji() -> None:
871+
string = "ñbñ🚀ñ"
872+
assert string.count("😴", 2) == string.count("😴", -4) == 0, (string.count("😴", 2), string.count("😴", -4))
873+
assert string.count("🚀", 2) == string.count("🚀", -4) == 2, (string.count("🚀", 2), string.count("🚀", -4))
874+
assert string.count("ñ", 2) == string.count("ñ", -4) == 1, (string.count("ñ", 2), string.count("ñ", -4))
875+
# Out of bounds
876+
assert string.count("😴", 8) == 0
877+
assert string.count("😴", -8) == 1
878+
assert string.count("🚀", 8) == 0
879+
assert string.count("ñ", -8) == 2
880+
def test_count_start_end_emoji() -> None:
881+
string = "ñbñ🚀ñ"
882+
assert string.count("😴", 0, 4) == 1, string.count("😴", 0, 4)
883+
assert string.count("🚀", 0, 4) == 1, string.count("🚀", 0, 4)
884+
assert string.count("ñ", 0, 4) == 2, string.count("ñ", 0, 4)
885+
def test_count_multi_emoji() -> None:
886+
string = "😴😴😴🚀🚀ñññ🚀ñññ🚀"
887+
assert string.count("😴😴😴") == 1
888+
assert string.count("🚀🚀") == 1
889+
assert string.count("ñ") == 5
890+
def test_count_multi_start_emoji() -> None:
891+
string = "😴😴😴🚀ñññ🚀ñññ🚀"
892+
assert string.count("😴😴😴", 6) == string.count("😴😴😴", -12) == 0, (string.count("😴😴😴", 6), string.count("😴😴😴", -12))
893+
assert string.count("🚀ñ", 6) == string.count("🚀ñ", -12) == 1, (string.count("🚀ñ", 6), string.count("🚀ñ", -12))
894+
assert string.count("ññ", 6) == string.count("ññ", -12) == 2, (string.count("ññ", 6), string.count("ññ", -12))
895+
# Boundary pushing 🎢
896+
assert string.count("😴", 20) == 0
897+
assert string.count("😴", -20) == 1
898+
assert string.count("🚀", 20) == 0
899+
assert string.count("ñ", -20) == 5
900+
def test_count_multi_start_end_emoji() -> None:
901+
# Tuning in a specific range 📻
902+
string = "😴😴😴🚀🚀ñññ🚀ñññ🚀"
903+
assert string.count("😴", 0, 12) == 3, string.count("😴", 0, 12)
904+
assert string.count("🚀", 0, 12) == 2, string.count("🚀", 0, 12)
905+
assert string.count("ññ", 0, 12) == 1, string.count("ññ", 0, 12)

0 commit comments

Comments
 (0)