| // WITH_STDLIB | |
| private fun isPosZero(x: Float) = x == 0.0f && 1.0f / x == Float.POSITIVE_INFINITY | |
| private fun isNegZero(x: Float) = x == 0.0f && 1.0f / x == Float.NEGATIVE_INFINITY | |
| fun box(): String { | |
| if (!((Float.NaN + 1.0f).isNaN())) return "fail1" | |
| if (!((1.0f + Float.NaN).isNaN())) return "fail2" | |
| if (!((Float.POSITIVE_INFINITY + Float.NEGATIVE_INFINITY).isNaN())) return "fail3" | |
| if (!isNegZero((-0.0f) + (-0.0f))) return "fail4" | |
| if (!isPosZero((+0.0f) + (-0.0f))) return "fail5" | |
| if (!isPosZero(0.0f - 0.0f)) return "fail6" | |
| if (0.0f + Float.MIN_VALUE != Float.MIN_VALUE) return "fail7" | |
| return "OK" | |
| } |