Tests find for strings with Russian letters й and ё in them.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

Exact matches first as a baseline


PASS canFind(decomposedCyrillicShortI, decomposedCyrillicShortI) is true
PASS canFind(decomposedCyrillicSmallShortI, decomposedCyrillicSmallShortI) is true
PASS canFind(letterCyrillicShortI, letterCyrillicShortI) is true
PASS canFind(letterCyrillicSmallShortI, letterCyrillicSmallShortI) is true
PASS canFind("й", "йод") is true
PASS canFind("ё", "мумиё") is true


Composed and decomposed forms: Must be treated as equal


PASS canFind(decomposedCyrillicYO, decomposedCyrillicYO) is true
PASS canFind(decomposedCyrillicSmallYO, decomposedCyrillicSmallYO) is true
PASS canFind(letterCyrillicShortI, decomposedCyrillicShortI) is true
PASS canFind(letterCyrillicSmallShortI, decomposedCyrillicSmallShortI) is true
PASS canFind(letterCyrillicYO, decomposedCyrillicYO) is true
PASS canFind(letterCyrillicSmallYO, decomposedCyrillicSmallYO) is true
PASS canFind(decomposedCyrillicShortI, letterCyrillicShortI) is true
PASS canFind(decomposedCyrillicSmallShortI, letterCyrillicSmallShortI) is true
PASS canFind(decomposedCyrillicYO, letterCyrillicYO) is true
PASS canFind(decomposedCyrillicSmallYO, letterCyrillicSmallYO) is true


Small and capital letters: Must be treated as equal


PASS canFind(letterCyrillicSmallI, letterCyrillicI) is true
PASS canFind(letterCyrillicSmallYO, letterCyrillicYO) is true
PASS canFind(letterCyrillicI, letterCyrillicSmallI) is true
PASS canFind(letterCyrillicYO, letterCyrillicSmallYO) is true
PASS canFind(decomposedCyrillicSmallShortI, letterCyrillicI) is true
PASS canFind(decomposedCyrillicSmallYO, letterCyrillicYO) is true
PASS canFind(decomposedCyrillicShortI, letterCyrillicSmallI) is true
PASS canFind(decomposedCyrillicYO, letterCyrillicSmallYO) is true
PASS canFind(letterCyrillicSmallI + letterCyrillicSmallYO, letterCyrillicSmallI + letterCyrillicYO) is true
PASS canFind("й", "Йод") is true
PASS canFind("ё", "МУМИЁ") is true
PASS canFind("Й", "йод") is true
PASS canFind("Ё", "мумиё") is true


Е and Ё: Must be treated as equal


PASS canFind("мумие", "мумиё") is true
PASS canFind("МУМИЕ", "МУМИЁ") is true
PASS canFind("мумиё", "мумие") is true
PASS canFind("МУМИЁ", "МУМИЕ") is true


Й and и: Must *not* be treated as equal


PASS canFind("зайка", "заика") is false
FAIL canFind("заика", "зайка") should be false. Was true.


PASS successfullyParsed is true

TEST COMPLETE

