Files
kotlin-fork/backend.native/tests/external/stdlib/text/StringTest/trimIndent.kt
T
2017-04-26 17:30:29 +07:00

73 lines
2.4 KiB
Kotlin

import kotlin.test.*
fun box() {
// WARNING
// DO NOT REFORMAT AS TESTS MAY FAIL DUE TO INDENTATION CHANGE
assertEquals("123", """
123
""".trimIndent())
assertEquals("123\n 456", """
123
456
""".trimIndent())
assertEquals(" 123\n456", """
123
456
""".trimIndent())
assertEquals(" 123\n 456", """
123
456
""".replaceIndent(newIndent = " "))
assertEquals(" 123\n456", """
123
456""".trimIndent())
assertEquals(" ", """
${" "}
""".trimIndent())
val deindented = """
,.
,. _ oo. `88P
]88b ,o. d88. ]88b '
888 _ Y888o888 d88P _ _
888 ,888 `Y88888o_ ,888 d88b d88._____
888,888P ,oooooo. ;888888b.]88P 888' d888888888p
888888P d88888888. J88b'YPP ]88b ,888 d888P'''888.
8888P' ]88P `888 d88[ d88P ]88b 888' Y88b
8888p ]88b 888 888 d88[ 888 888. `888
,88888b 888[ 888 888. d88[ 888. Y88b Y88[
d88PY88b `888L,d88P Y88b Y88b ]88b `888 888'
888 Y88b Y88888P 888. 888. 888. Y88b `88P
d88P 888 `'P' Y888. `888. `88P `Y8P '
Y8P' ' `YP Y8P' '
____ dXp _ _ _________
ddXXXXXp XXP ,XX dXb Yo.XXXXXX ,oooooo.
X'L_oXXP XX' XX[ dXb dXb YPPPPXXX'
XYXXXXX ]XX dXb dXb dX8Xooooo dXXP
XXb`YYXXo. YXXo_ dXP dXP YXb'''''' ,XXP'
`XX `YYXb `YXXXXP XX[ ]XX ,XX'
YXb YXb `'' XXXXooL `XX._____ `XXXXXXXXooooo.
`XP ' '''''' YPXXXXXX' ''''''`''YPPP
""".trimIndent()
assertEquals(23, deindented.lines().size)
val indents = deindented.lines().map {
var i = 0
while (i < it.length && it[i].isWhitespace())
i++
return@map i
}
assertEquals(0, indents.min())
assertEquals(42, indents.max())
assertEquals(1, deindented.lines().count { it.isEmpty() })
}