Add Locale-accepting overloads for (de)capitalize in JDK stdlib

#KT-28933 fixed
This commit is contained in:
Jake Wharton
2019-02-07 11:36:09 -05:00
committed by Ilya Gorbunov
parent f702417655
commit af31794f60
3 changed files with 65 additions and 0 deletions
@@ -67,4 +67,32 @@ class StringJVMTest {
assertEquals("UTF-32LE", Charsets.UTF_32LE.name())
assertEquals("UTF-32BE", Charsets.UTF_32BE.name())
}
@ExperimentalStdlibApi
@Test fun capitalizeLocale() {
assertEquals("ABC", "ABC".capitalize(Locale.US))
assertEquals("Abc", "Abc".capitalize(Locale.US))
assertEquals("Abc", "abc".capitalize(Locale.US))
// Locale-specific case mappings.
assertEquals("İii", "iii".capitalize(Locale("tr", "TR")))
assertEquals("Iii", "iii".capitalize(Locale.US))
// Case mapping that results in multiple characters (validating Character.toUpperCase was not used).
assertEquals("SSßß", "ßßß".capitalize(Locale.US))
// Case mapping where title case is different than uppercase and so Character.toTitleCase is preferred.
assertEquals("Dzdzdz", "dzdzdz".capitalize(Locale.US))
}
@ExperimentalStdlibApi
@Test fun decapitalizeLocale() {
assertEquals("aBC", "ABC".decapitalize(Locale.US))
assertEquals("abc", "Abc".decapitalize(Locale.US))
assertEquals("abc", "abc".decapitalize(Locale.US))
// Locale-specific case mappings.
assertEquals("ıII", "III".decapitalize(Locale("tr", "TR")))
assertEquals("iII", "III".decapitalize(Locale.US))
}
}