summaryrefslogtreecommitdiff
path: root/Tests
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2021-09-05 15:03:56 -0400
committerLinus Groh <mail@linusgroh.de>2021-09-06 15:24:27 +0100
commit436faf9fd97c4d595bb1dc7a47585cc876b19da8 (patch)
tree0b4a9d972914c388344e5f72f219013d9e7641b4 /Tests
parent1427ebc622b775885ff45d2f2b684534c2b3350a (diff)
downloadserenity-436faf9fd97c4d595bb1dc7a47585cc876b19da8.zip
LibUnicode: Implement locale-aware MORE_ABOVE special casing
Diffstat (limited to 'Tests')
-rw-r--r--Tests/LibUnicode/TestUnicodeCharacterTypes.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/Tests/LibUnicode/TestUnicodeCharacterTypes.cpp b/Tests/LibUnicode/TestUnicodeCharacterTypes.cpp
index 18cff2bdcb..e53b951945 100644
--- a/Tests/LibUnicode/TestUnicodeCharacterTypes.cpp
+++ b/Tests/LibUnicode/TestUnicodeCharacterTypes.cpp
@@ -198,6 +198,51 @@ TEST_CASE(to_unicode_lowercase_special_casing_i)
EXPECT_EQ(result, "\u0131a\u0307"sv);
}
+TEST_CASE(to_unicode_lowercase_special_casing_more_above)
+{
+ // LATIN CAPITAL LETTER I
+ auto result = Unicode::to_unicode_lowercase_full("I"sv, "en"sv);
+ EXPECT_EQ(result, "i"sv);
+
+ result = Unicode::to_unicode_lowercase_full("I"sv, "lt"sv);
+ EXPECT_EQ(result, "i"sv);
+
+ // LATIN CAPITAL LETTER J
+ result = Unicode::to_unicode_lowercase_full("J"sv, "en"sv);
+ EXPECT_EQ(result, "j"sv);
+
+ result = Unicode::to_unicode_lowercase_full("J"sv, "lt"sv);
+ EXPECT_EQ(result, "j"sv);
+
+ // LATIN CAPITAL LETTER I WITH OGONEK
+ result = Unicode::to_unicode_lowercase_full("\u012e"sv, "en"sv);
+ EXPECT_EQ(result, "\u012f"sv);
+
+ result = Unicode::to_unicode_lowercase_full("\u012e"sv, "lt"sv);
+ EXPECT_EQ(result, "\u012f"sv);
+
+ // LATIN CAPITAL LETTER I followed by COMBINING GRAVE ACCENT
+ result = Unicode::to_unicode_lowercase_full("I\u0300"sv, "en"sv);
+ EXPECT_EQ(result, "i\u0300"sv);
+
+ result = Unicode::to_unicode_lowercase_full("I\u0300"sv, "lt"sv);
+ EXPECT_EQ(result, "i\u0307\u0300"sv);
+
+ // LATIN CAPITAL LETTER J followed by COMBINING GRAVE ACCENT
+ result = Unicode::to_unicode_lowercase_full("J\u0300"sv, "en"sv);
+ EXPECT_EQ(result, "j\u0300"sv);
+
+ result = Unicode::to_unicode_lowercase_full("J\u0300"sv, "lt"sv);
+ EXPECT_EQ(result, "j\u0307\u0300"sv);
+
+ // LATIN CAPITAL LETTER I WITH OGONEK followed by COMBINING GRAVE ACCENT
+ result = Unicode::to_unicode_lowercase_full("\u012e\u0300"sv, "en"sv);
+ EXPECT_EQ(result, "\u012f\u0300"sv);
+
+ result = Unicode::to_unicode_lowercase_full("\u012e\u0300"sv, "lt"sv);
+ EXPECT_EQ(result, "\u012f\u0307\u0300"sv);
+}
+
TEST_CASE(to_unicode_uppercase_unconditional_special_casing)
{
// LATIN SMALL LETTER SHARP S