assertEquals(AdminStringUtil::shorthandToUnicode("'^a'^A^'a^'A"), 'ấẤấẤ'); assertEquals(AdminStringUtil::shorthandToUnicode("'~a'~A~'a~'A"), 'ắẮắẮ'); assertEquals(AdminStringUtil::shorthandToUnicode("~a~A^a^A'a'A"), 'ăĂâÂáÁ'); assertEquals(AdminStringUtil::shorthandToUnicode("`a`A:a:A"), 'àÀäÄ'); assertEquals(AdminStringUtil::shorthandToUnicode(",c,C'c'C~c~C"), 'çÇćĆčČ'); assertEquals(AdminStringUtil::shorthandToUnicode("'e'E`e`E^e^E"), 'éÉèÈêÊ'); assertEquals(AdminStringUtil::shorthandToUnicode(":e:E~e~E~g~G"), 'ëËĕĔğĞ'); assertEquals(AdminStringUtil::shorthandToUnicode("'^i'^I^'i^'I"), 'î́Î́î́Î́'); assertEquals(AdminStringUtil::shorthandToUnicode("'i'I`i`I^i^I"), 'íÍìÌîÎ'); assertEquals(AdminStringUtil::shorthandToUnicode(":i:I~i~I~n~N"), 'ïÏĭĬñÑ'); assertEquals(AdminStringUtil::shorthandToUnicode("'o'O`o`O^o^O"), 'óÓòÒôÔ'); assertEquals(AdminStringUtil::shorthandToUnicode(":o:O~o~O~r~R"), 'öÖõÕřŘ'); assertEquals(AdminStringUtil::shorthandToUnicode("~s~S,s,S,t,T"), 'šŠșȘțȚ'); assertEquals(AdminStringUtil::shorthandToUnicode("'u'U`u`U^u^U"), 'úÚùÙûÛ'); assertEquals(AdminStringUtil::shorthandToUnicode(":u:U~u~U"), 'üÜŭŬ'); assertEquals(AdminStringUtil::shorthandToUnicode("'y'Y:y:Y~z~Z"), 'ýÝÿŸžŽ'); assertEquals('acegyzACEGYZ', StringUtil::unicodeToLatin("ắčèğýžẮČÈĞÝŽ")); assertEquals('mama', mb_strtolower('mama')); assertEquals('mama', mb_strtolower('maMa')); assertEquals('mama', mb_strtolower('MAmA')); assertEquals('mamă', mb_strtolower('MAmă')); assertEquals('mamă', mb_strtolower('MAmĂ')); assertEquals('abcúùû', mb_strtolower('ABCÚÙÛ')); assertEquals('ÿ', mb_strtolower('Ÿ')); assertEquals('MAMA', mb_strtoupper('MAMA')); assertEquals('MAMA', mb_strtoupper('MAmA')); assertEquals('MAMA', mb_strtoupper('MAmA')); assertEquals('MAMĂ', mb_strtoupper('MamĂ')); assertEquals('MAMĂ', mb_strtoupper('maMă')); assertEquals('ABCÚÙÛ', mb_strtoupper('abcúùû')); assertEquals('Ÿ', mb_strtoupper('ÿ'));