Add NaN-propagation in coerceIn(ClosedComparableRange<Double>)

This commit is contained in:
Ilya Gorbunov
2016-12-08 01:40:52 +03:00
parent ea77673dde
commit 8ec2a2e6fe
3 changed files with 15 additions and 4 deletions
@@ -67,8 +67,11 @@ class CoercionTest {
fun coercionsDouble() {
expect(5.0) { 5.0.coerceAtLeast(1.0) }
expect(5.0) { 1.0.coerceAtLeast(5.0) }
assertTrue { Double.NaN.coerceAtLeast(1.0).isNaN() }
expect(1.0) { 5.0.coerceAtMost(1.0) }
expect(1.0) { 1.0.coerceAtMost(5.0) }
assertTrue { Double.NaN.coerceAtMost(5.0).isNaN() }
for (value in (0..10).map { it.toDouble() }) {
expect(value) { value.coerceIn(null, null) }
@@ -84,8 +87,12 @@ class CoercionTest {
assertFails { 1.0.coerceIn(1.0, 0.0) }
assertFails { 1.0.coerceIn(1.0..0.0) }
assertTrue(0.0.equals(0.0.coerceIn(0.0, -0.0)))
assertTrue((-0.0).equals((-0.0).coerceIn(0.0..-0.0)))
assertTrue(Double.NaN.coerceIn(0.0, 1.0).isNaN())
assertTrue(Double.NaN.coerceIn(0.0..1.0).isNaN())
}
@Test