49 lines
1.8 KiB
Kotlin
Vendored
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"
|
|
} |