JS backend: fix KT-5738 JS backend: result of toByte() should be in the range of bytes

#KT-5738 Fixed
This commit is contained in:
Michael Nedzelsky
2014-09-06 15:40:49 +04:00
parent a632e9e21d
commit cc4f84ffae
7 changed files with 168 additions and 34 deletions
@@ -0,0 +1,27 @@
package foo
fun box(): String {
assertEquals(65, 321.0.toByte())
assertEquals(-56, 200.0.toByte())
assertEquals(65, 321.0f.toByte())
assertEquals(-56, 200.0f.toByte())
assertEquals(65, 321.toByte())
assertEquals(-56, 200.toByte())
assertEquals(65, (321: Short).toByte())
assertEquals(-56, (200: Short).toByte())
assertEquals(-1, 65535.0.toShort())
assertEquals(-1, 65535.0f.toShort())
assertEquals(-1, 65535.toShort())
assertEquals(65535, 65535.2.toInt())
assertEquals(23, 23.6f.toInt())
assertEquals(-12, -12.4.toShort())
assertEquals(-12, -12.4.toByte())
return "OK"
}
@@ -0,0 +1,55 @@
package foo
fun testForNumber(numberX: Number) {
assertEquals(true, 65.0 == numberX.toDouble())
assertEquals(true, 65.0f == numberX.toFloat())
assertEquals(true, 65 == numberX.toInt())
assertEquals(true, (65: Short) == numberX.toShort())
assertEquals(true, (65: Byte) == numberX.toByte())
}
fun box(): String {
testForNumber(65.0)
testForNumber(65.0f)
testForNumber(65)
testForNumber(65: Short)
testForNumber(65: Byte)
var doubleX: Double = 65.0
assertEquals(true, 65.0 == doubleX.toDouble())
assertEquals(true, 65.0f == doubleX.toFloat())
assertEquals(true, 65 == doubleX.toInt())
assertEquals(true, (65: Short) == doubleX.toShort())
assertEquals(true, (65: Byte) == doubleX.toByte())
var floatX: Float = 65.0f
assertEquals(true, 65.0 == floatX.toDouble())
assertEquals(true, 65.0f == floatX.toFloat())
assertEquals(true, 65 == floatX.toInt())
assertEquals(true, (65: Short) == floatX.toShort())
assertEquals(true, (65: Byte) == floatX.toByte())
val intX: Int = 65
assertEquals(true, 65.0 == intX.toDouble())
assertEquals(true, 65.0f == intX.toFloat())
assertEquals(true, 65 == intX.toInt())
assertEquals(true, (65: Short) == intX.toShort())
assertEquals(true, (65: Byte) == intX.toByte())
val shortX: Short = 65: Short
assertEquals(true, 65.0 == shortX.toDouble())
assertEquals(true, 65.0f == shortX.toFloat())
assertEquals(true, 65 == shortX.toInt())
assertEquals(true, (65: Short) == shortX.toShort())
assertEquals(true, (65: Byte) == shortX.toByte())
val byteX: Byte = 65: Byte
assertEquals(true, 65.0 == byteX.toDouble())
assertEquals(true, 65.0f == byteX.toFloat())
assertEquals(true, 65 == byteX.toInt())
assertEquals(true, (65: Short) == byteX.toShort())
assertEquals(true, (65: Byte) == byteX.toByte())
return "OK"
}