KT-23356 Cross-platform function to convert CharArray slice to String

Signed-off-by: Valeriy Zhirnov <neonailol@gmail.com>
This commit is contained in:
Neonailol
2018-05-21 17:15:00 +03:00
committed by Ilya Gorbunov
parent 16ebcc6e77
commit ede2e227c2
4 changed files with 56 additions and 2 deletions
+22
View File
@@ -43,6 +43,28 @@ fun Char.isAsciiUpperCase() = this in 'A'..'Z'
class StringTest {
@Test fun stringFromCharArrayFullSlice() {
val chars: CharArray = charArrayOf('K', 'o', 't', 'l', 'i', 'n')
assertEquals("Kotlin", String(chars, 0, chars.size))
}
@Test fun stringFromCharArraySlice() {
val chars: CharArray = charArrayOf('K', 'o', 't', 'l', 'i', 'n', ' ', 'r', 'u', 'l', 'e', 's')
assertEquals("rule", String(chars, 7, 4))
}
@Test fun stringFromCharArray() {
val chars: CharArray = charArrayOf('K', 'o', 't', 'l', 'i', 'n')
assertEquals("Kotlin", String(chars))
}
@Test fun stringFromCharArrayUnicodeSurrogatePairs() {
val chars: CharArray = charArrayOf('Ц', '月', '語', '\u016C', '\u138D', '\uD83C', '\uDC3A')
assertEquals("Ц月語Ŭᎍ🀺", String(chars))
assertEquals("", String(chars, 1, 1))
assertEquals("Ŭᎍ🀺", String(chars, 3, 4))
}
@Test fun isEmptyAndBlank() = withOneCharSequenceArg { arg1 ->
class Case(val value: String?, val isNull: Boolean = false, val isEmpty: Boolean = false, val isBlank: Boolean = false)