Files
kotlin-fork/compiler/testData/codegen/box/ranges/contains/inFloatingPointRangeWithNaNBound.kt
T
2020-03-10 15:19:34 +03:00

49 lines
1.8 KiB
Kotlin
Vendored

// WITH_RUNTIME
import kotlin.test.*
fun box(): String {
val NAN = Double.NaN
val M_NAN = -Double.NaN
val range1 = 0.0 .. NAN
val range2 = M_NAN .. 0.0
val range3 = M_NAN .. NAN
assertEquals(1.0 in range1, 1.0 in 0.0 .. NAN)
assertEquals(-1.0 in range1, -1.0 in 0.0 .. NAN)
assertEquals(0.0 in range1, 0.0 in 0.0 .. NAN)
assertEquals(NAN in range1, NAN in 0.0 .. NAN)
assertEquals(M_NAN in range1, M_NAN in 0.0 .. NAN)
assertEquals(1.0 !in range1, 1.0 !in 0.0 .. NAN)
assertEquals(-1.0 !in range1, -1.0 !in 0.0 .. NAN)
assertEquals(0.0 !in range1, 0.0 !in 0.0 .. NAN)
assertEquals(NAN !in range1, NAN !in 0.0 .. NAN)
assertEquals(M_NAN !in range1, M_NAN !in 0.0 .. NAN)
assertEquals(1.0 in range2, 1.0 in M_NAN .. 0.0)
assertEquals(-1.0 in range2, -1.0 in M_NAN .. 0.0)
assertEquals(0.0 in range2, 0.0 in M_NAN .. 0.0)
assertEquals(NAN in range2, NAN in M_NAN .. 0.0)
assertEquals(M_NAN in range2, M_NAN in M_NAN .. 0.0)
assertEquals(1.0 !in range2, 1.0 !in M_NAN .. 0.0)
assertEquals(-1.0 !in range2, -1.0 !in M_NAN .. 0.0)
assertEquals(0.0 !in range2, 0.0 !in M_NAN .. 0.0)
assertEquals(NAN !in range2, NAN !in M_NAN .. 0.0)
assertEquals(M_NAN !in range2, M_NAN !in M_NAN .. 0.0)
assertEquals(1.0 in range3, 1.0 in M_NAN .. NAN)
assertEquals(-1.0 in range3, -1.0 in M_NAN .. NAN)
assertEquals(0.0 in range3, 0.0 in M_NAN .. NAN)
assertEquals(NAN in range3, NAN in M_NAN .. NAN)
assertEquals(M_NAN in range3, M_NAN in M_NAN .. NAN)
assertEquals(1.0 !in range3, 1.0 !in M_NAN .. NAN)
assertEquals(-1.0 !in range3, -1.0 !in M_NAN .. NAN)
assertEquals(0.0 !in range3, 0.0 !in M_NAN .. NAN)
assertEquals(NAN !in range3, NAN !in M_NAN .. NAN)
assertEquals(M_NAN !in range3, M_NAN !in M_NAN .. NAN)
return "OK"
}