// 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" }