mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-10 08:31:29 +00:00
- Fix `toString` evaluation for unsigned types in FoldConstantLowering - make corner cases around float/double evaluation work for K/JS - remove usage of kotlin type
40 lines
1.2 KiB
Kotlin
Vendored
40 lines
1.2 KiB
Kotlin
Vendored
// KJS_WITH_FULL_RUNTIME
|
|
// WITH_RUNTIME
|
|
// IGNORE_BACKEND_FIR: JVM_IR
|
|
|
|
import kotlin.math.*
|
|
|
|
fun almostEqual(a: Float, b: Float): Boolean = abs(a - b) < 0.0000001F
|
|
|
|
val umax = UInt.MAX_VALUE
|
|
val ulmax = ULong.MAX_VALUE
|
|
val imax = Int.MAX_VALUE
|
|
val lmax = Long.MAX_VALUE
|
|
|
|
fun box(): String {
|
|
if (1F != 1.toFloat()) return "fail 1"
|
|
if (1.0F != 1.0.toFloat()) return "fail 2"
|
|
if (1e1F != 1e1.toFloat()) return "fail 3"
|
|
if (1.0e1F != 1.0e1.toFloat()) return "fail 4"
|
|
if (1e-1F != 1e-1.toFloat()) return "fail 5"
|
|
if (1.0e-1F != 1.0e-1.toFloat()) return "fail 6"
|
|
|
|
if (1f != 1.toFloat()) return "fail 7"
|
|
if (1.0f != 1.0.toFloat()) return "fail 8"
|
|
if (1e1f != 1e1.toFloat()) return "fail 9"
|
|
if (1.0e1f != 1.0e1.toFloat()) return "fail 10"
|
|
if (1e-1f != 1e-1.toFloat()) return "fail 11"
|
|
if (1.0e-1f != 1.0e-1.toFloat()) return "fail 12"
|
|
|
|
if (!almostEqual(kotlin.math.E.toFloat(), exp(1.0F))) return "fail 13"
|
|
|
|
if (2147483647.toFloat() != imax.toFloat()) return "fail 14"
|
|
|
|
if (9223372036854775807L.toFloat() != lmax.toFloat()) return "fail 15"
|
|
|
|
if (0xFFFF_FFFF.toFloat() != umax.toFloat()) return "fail 16"
|
|
|
|
if ((2.0f * Long.MAX_VALUE + 1) != ulmax.toFloat()) return "fail 17"
|
|
|
|
return "OK"
|
|
} |