Return NaN as an average of an empty collection.
#KT-15399 Fixed
This commit is contained in:
@@ -12595,7 +12595,7 @@ public fun Array<out Byte>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12609,7 +12609,7 @@ public fun Array<out Short>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12623,7 +12623,7 @@ public fun Array<out Int>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12637,7 +12637,7 @@ public fun Array<out Long>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12651,7 +12651,7 @@ public fun Array<out Float>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12665,7 +12665,7 @@ public fun Array<out Double>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12678,7 +12678,7 @@ public fun ByteArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12691,7 +12691,7 @@ public fun ShortArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12704,7 +12704,7 @@ public fun IntArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12717,7 +12717,7 @@ public fun LongArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12730,7 +12730,7 @@ public fun FloatArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12743,7 +12743,7 @@ public fun DoubleArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2044,7 +2044,7 @@ public fun Iterable<Byte>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2058,7 +2058,7 @@ public fun Iterable<Short>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2072,7 +2072,7 @@ public fun Iterable<Int>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2086,7 +2086,7 @@ public fun Iterable<Long>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2100,7 +2100,7 @@ public fun Iterable<Float>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2114,7 +2114,7 @@ public fun Iterable<Double>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1315,7 +1315,7 @@ public fun Sequence<Byte>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1329,7 +1329,7 @@ public fun Sequence<Short>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1343,7 +1343,7 @@ public fun Sequence<Int>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1357,7 +1357,7 @@ public fun Sequence<Long>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1371,7 +1371,7 @@ public fun Sequence<Float>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1385,7 +1385,7 @@ public fun Sequence<Double>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12678,7 +12678,7 @@ public fun Array<out Byte>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12692,7 +12692,7 @@ public fun Array<out Short>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12706,7 +12706,7 @@ public fun Array<out Int>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12720,7 +12720,7 @@ public fun Array<out Long>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12734,7 +12734,7 @@ public fun Array<out Float>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12748,7 +12748,7 @@ public fun Array<out Double>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12761,7 +12761,7 @@ public fun ByteArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12774,7 +12774,7 @@ public fun ShortArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12787,7 +12787,7 @@ public fun IntArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12800,7 +12800,7 @@ public fun LongArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12813,7 +12813,7 @@ public fun FloatArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12826,7 +12826,7 @@ public fun DoubleArray.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2055,7 +2055,7 @@ public fun Iterable<Byte>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2069,7 +2069,7 @@ public fun Iterable<Short>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2083,7 +2083,7 @@ public fun Iterable<Int>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2097,7 +2097,7 @@ public fun Iterable<Long>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2111,7 +2111,7 @@ public fun Iterable<Float>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2125,7 +2125,7 @@ public fun Iterable<Double>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1334,7 +1334,7 @@ public fun Sequence<Byte>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1348,7 +1348,7 @@ public fun Sequence<Short>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1362,7 +1362,7 @@ public fun Sequence<Int>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1376,7 +1376,7 @@ public fun Sequence<Long>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1390,7 +1390,7 @@ public fun Sequence<Float>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1404,7 +1404,7 @@ public fun Sequence<Double>.average(): Double {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -420,7 +420,7 @@ class ArraysTest {
|
||||
}
|
||||
|
||||
@Test fun average() {
|
||||
expect(0.0) { arrayOf<Int>().average() }
|
||||
assertTrue() { arrayOf<Int>().average().isNaN() }
|
||||
expect(3.8) { arrayOf(1, 2, 5, 8, 3).average() }
|
||||
expect(2.1) { arrayOf(1.6, 2.6, 3.6, 0.6).average() }
|
||||
expect(100.0) { arrayOf<Byte>(100, 100, 100, 100, 100, 100).average() }
|
||||
|
||||
@@ -741,7 +741,7 @@ class CollectionTest {
|
||||
}
|
||||
|
||||
@Test fun average() {
|
||||
expect(0.0) { arrayListOf<Int>().average() }
|
||||
assertTrue { arrayListOf<Int>().average().isNaN() }
|
||||
expect(3.8) { listOf(1, 2, 5, 8, 3).average() }
|
||||
expect(2.1) { sequenceOf(1.6, 2.6, 3.6, 0.6).average() }
|
||||
expect(100.0) { arrayListOf<Byte>(100, 100, 100, 100, 100, 100).average() }
|
||||
|
||||
@@ -36,7 +36,7 @@ fun numeric(): List<GenericFunction> {
|
||||
sum += element
|
||||
count += 1
|
||||
}
|
||||
return if (count == 0) 0.0 else sum / count
|
||||
return if (count == 0) Double.NaN else sum / count
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user