Files
kotlin-fork/js/js.translator/testData/wasmBox/number/conversionsWithoutTruncation.kt
T
Svyatoslav Kuzmich 6e6ffa12a6 [WASM] Initial infrastructure
- New module ":compiler:backend.wasm"
    - Initial compiler infra (driver, phaser, context)
    - Subset of Wasm AST
    - Skeleton of IR -> Wasm AST
    - Wasm AST -> WAT transformer

- Testing infra

- SpiderMonkey jsshell tool
2019-08-22 15:59:54 +03:00

81 lines
3.1 KiB
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1293
package foo
//fun testForNumber(numberX: Number) {
// assertEquals(true, 65.0 == numberX.toDouble())
// assertEquals(true, 65.0f == numberX.toFloat())
// assertEquals(true, 65L == numberX.toLong())
// assertEquals(true, 65 == numberX.toInt())
// assertEquals(true, 65.toShort() == numberX.toShort())
// assertEquals(true, 65.toByte() == numberX.toByte())
// assertEquals(true, 'A' == numberX.toChar())
//}
fun box(): String {
// TODO: Number is not supported yet
// testForNumber(65.0)
// testForNumber(65.0f)
// testForNumber(65L)
// testForNumber(65)
// testForNumber(65.toShort())
// testForNumber(65.toByte())
var doubleX: Double = 65.0
assertEquals(true, 65.0 == doubleX.toDouble())
assertEquals(true, 65.0f == doubleX.toFloat())
// TODO: Float to integer convertions are not supported yet
// assertEquals(true, 65L == doubleX.toLong())
// assertEquals(true, 65 == doubleX.toInt())
// assertEquals(true, 65.toShort() == doubleX.toShort())
// assertEquals(true, 65.toByte() == doubleX.toByte())
// assertEquals(true, 'A' == doubleX.toChar())
var floatX: Float = 65.0f
assertEquals(true, 65.0 == floatX.toDouble())
assertEquals(true, 65.0f == floatX.toFloat())
// TODO: Float to integer convertions are not supported yet
// assertEquals(true, 65L == floatX.toLong())
// assertEquals(true, 65 == floatX.toInt())
// assertEquals(true, 65.toShort() == floatX.toShort())
// assertEquals(true, 65.toByte() == floatX.toByte())
// assertEquals(true, 'A' == floatX.toChar())
val longX: Long = 65L
assertEquals(true, 65.0 == longX.toDouble())
assertEquals(true, 65.0f == longX.toFloat())
assertEquals(true, 65L == longX.toLong())
assertEquals(true, 65 == longX.toInt())
assertEquals(true, 65.toShort() == longX.toShort())
assertEquals(true, 65.toByte() == longX.toByte())
assertEquals(true, 'A' == longX.toChar())
val intX: Int = 65
assertEquals(true, 65.0 == intX.toDouble())
assertEquals(true, 65.0f == intX.toFloat())
assertEquals(true, 65L == intX.toLong())
assertEquals(true, 65 == intX.toInt())
assertEquals(true, 65.toShort() == intX.toShort())
assertEquals(true, 65.toByte() == intX.toByte())
assertEquals(true, 'A' == intX.toChar())
val shortX: Short = 65.toShort()
assertEquals(true, 65.0 == shortX.toDouble())
assertEquals(true, 65.0f == shortX.toFloat())
assertEquals(true, 65L == shortX.toLong())
assertEquals(true, 65 == shortX.toInt())
assertEquals(true, 65.toShort() == shortX.toShort())
assertEquals(true, 65.toByte() == shortX.toByte())
assertEquals(true, 'A' == shortX.toChar())
val byteX: Byte = 65.toByte()
assertEquals(true, 65.0 == byteX.toDouble())
assertEquals(true, 65.0f == byteX.toFloat())
assertEquals(true, 65L == byteX.toLong())
assertEquals(true, 65 == byteX.toInt())
assertEquals(true, 65.toShort() == byteX.toShort())
assertEquals(true, 65.toByte() == byteX.toByte())
assertEquals(true, 'A' == byteX.toChar())
return "OK"
}