Test that known Floats can fit in FloatArray without over/underflow
But some precision loss can still happen in JS. Relates to KT-24975
This commit is contained in:
@@ -144,6 +144,16 @@ class NumbersTest {
|
|||||||
doTestNumber(Float.NaN, isNaN = true)
|
doTestNumber(Float.NaN, isNaN = true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test fun floatFitsInFloatArray() {
|
||||||
|
val values = listOf(1.0F, 0.0F, Float.MAX_VALUE, Float.MIN_VALUE, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, Float.NaN)
|
||||||
|
val valuesArray = values.toFloatArray()
|
||||||
|
|
||||||
|
for (index in values.indices) {
|
||||||
|
val value = values[index]
|
||||||
|
val tolerance = if (value == Float.MIN_VALUE) 0.001 * value else 0.0000001 * value
|
||||||
|
assertAlmostEquals(value, valuesArray[index], tolerance)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun doTestNumber(value: Double, isNaN: Boolean = false, isInfinite: Boolean = false) {
|
private fun doTestNumber(value: Double, isNaN: Boolean = false, isInfinite: Boolean = false) {
|
||||||
assertEquals(isNaN, value.isNaN(), "Expected $value to have isNaN: $isNaN")
|
assertEquals(isNaN, value.isNaN(), "Expected $value to have isNaN: $isNaN")
|
||||||
|
|||||||
Reference in New Issue
Block a user