35 lines
599 B
Kotlin
Vendored
35 lines
599 B
Kotlin
Vendored
fun box(): String {
|
|
testIfs()
|
|
testWhen()
|
|
|
|
return "OK"
|
|
}
|
|
|
|
// From KT-60212
|
|
fun testIfs() {
|
|
val b1 = 0b11011111
|
|
if (b1 and 0b10000000 == 0) {
|
|
fail("A")
|
|
} else if (b1 and 0b11100000 == 0b11000000) {
|
|
return
|
|
} else {
|
|
fail("C")
|
|
}
|
|
}
|
|
|
|
// Snippet from kotlinx-io
|
|
fun testWhen() {
|
|
val v = test(0xdf)
|
|
if (v != 1) fail("D")
|
|
}
|
|
|
|
fun test(b0: Int) = when {
|
|
b0 and 0x80 == 0 -> 0
|
|
b0 and 0xe0 == 0xc0 -> 1
|
|
b0 and 0xf0 == 0xe0 -> 2
|
|
b0 and 0xf8 == 0xf0 -> 3
|
|
else -> -1
|
|
}
|
|
|
|
fun fail(message: String): Nothing = throw Exception(message)
|