diff --git a/js/js.libraries/src/core/generated/_ArraysJs.kt b/js/js.libraries/src/core/generated/_ArraysJs.kt index 2d958e33b13..c7ef88525c7 100644 --- a/js/js.libraries/src/core/generated/_ArraysJs.kt +++ b/js/js.libraries/src/core/generated/_ArraysJs.kt @@ -12595,7 +12595,7 @@ public fun Array.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.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.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.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.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.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 } /** diff --git a/js/js.libraries/src/core/generated/_CollectionsJs.kt b/js/js.libraries/src/core/generated/_CollectionsJs.kt index 749e33a2f6d..3831d9bc262 100644 --- a/js/js.libraries/src/core/generated/_CollectionsJs.kt +++ b/js/js.libraries/src/core/generated/_CollectionsJs.kt @@ -2044,7 +2044,7 @@ public fun Iterable.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.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.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.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.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.average(): Double { sum += element count += 1 } - return if (count == 0) 0.0 else sum / count + return if (count == 0) Double.NaN else sum / count } /** diff --git a/js/js.libraries/src/core/generated/_SequencesJs.kt b/js/js.libraries/src/core/generated/_SequencesJs.kt index a12582d9bf6..5b987803920 100644 --- a/js/js.libraries/src/core/generated/_SequencesJs.kt +++ b/js/js.libraries/src/core/generated/_SequencesJs.kt @@ -1315,7 +1315,7 @@ public fun Sequence.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.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.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.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.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.average(): Double { sum += element count += 1 } - return if (count == 0) 0.0 else sum / count + return if (count == 0) Double.NaN else sum / count } /** diff --git a/libraries/stdlib/src/generated/_Arrays.kt b/libraries/stdlib/src/generated/_Arrays.kt index 778477a7c6d..970ddeb1666 100644 --- a/libraries/stdlib/src/generated/_Arrays.kt +++ b/libraries/stdlib/src/generated/_Arrays.kt @@ -12678,7 +12678,7 @@ public fun Array.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.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.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.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.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.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 } /** diff --git a/libraries/stdlib/src/generated/_Collections.kt b/libraries/stdlib/src/generated/_Collections.kt index 8b06161a548..cd5e9f200a6 100644 --- a/libraries/stdlib/src/generated/_Collections.kt +++ b/libraries/stdlib/src/generated/_Collections.kt @@ -2055,7 +2055,7 @@ public fun Iterable.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.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.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.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.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.average(): Double { sum += element count += 1 } - return if (count == 0) 0.0 else sum / count + return if (count == 0) Double.NaN else sum / count } /** diff --git a/libraries/stdlib/src/generated/_Sequences.kt b/libraries/stdlib/src/generated/_Sequences.kt index c8d17c9211d..002cf109359 100644 --- a/libraries/stdlib/src/generated/_Sequences.kt +++ b/libraries/stdlib/src/generated/_Sequences.kt @@ -1334,7 +1334,7 @@ public fun Sequence.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.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.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.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.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.average(): Double { sum += element count += 1 } - return if (count == 0) 0.0 else sum / count + return if (count == 0) Double.NaN else sum / count } /** diff --git a/libraries/stdlib/test/collections/ArraysTest.kt b/libraries/stdlib/test/collections/ArraysTest.kt index 7df2e894ecf..e18c1b48723 100644 --- a/libraries/stdlib/test/collections/ArraysTest.kt +++ b/libraries/stdlib/test/collections/ArraysTest.kt @@ -420,7 +420,7 @@ class ArraysTest { } @Test fun average() { - expect(0.0) { arrayOf().average() } + assertTrue() { arrayOf().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(100, 100, 100, 100, 100, 100).average() } diff --git a/libraries/stdlib/test/collections/CollectionTest.kt b/libraries/stdlib/test/collections/CollectionTest.kt index c3df8309e5d..040f49c7e24 100644 --- a/libraries/stdlib/test/collections/CollectionTest.kt +++ b/libraries/stdlib/test/collections/CollectionTest.kt @@ -741,7 +741,7 @@ class CollectionTest { } @Test fun average() { - expect(0.0) { arrayListOf().average() } + assertTrue { arrayListOf().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(100, 100, 100, 100, 100, 100).average() } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt index 8a2bdb1c1f4..9cc18682b41 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Numeric.kt @@ -36,7 +36,7 @@ fun numeric(): List { sum += element count += 1 } - return if (count == 0) 0.0 else sum / count + return if (count == 0) Double.NaN else sum / count """ } }