Add missing sum() on Streams.
This commit is contained in:
@@ -19,6 +19,18 @@ public fun Iterable<Int>.sum(): Int {
|
|||||||
return sum
|
return sum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the sum of all elements in the collection
|
||||||
|
*/
|
||||||
|
public fun Stream<Int>.sum(): Int {
|
||||||
|
val iterator = iterator()
|
||||||
|
var sum: Int = 0
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
sum += iterator.next()
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sum of all elements in the collection
|
* Returns the sum of all elements in the collection
|
||||||
*/
|
*/
|
||||||
@@ -31,6 +43,18 @@ public fun Iterable<Long>.sum(): Long {
|
|||||||
return sum
|
return sum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the sum of all elements in the collection
|
||||||
|
*/
|
||||||
|
public fun Stream<Long>.sum(): Long {
|
||||||
|
val iterator = iterator()
|
||||||
|
var sum: Long = 0
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
sum += iterator.next()
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sum of all elements in the collection
|
* Returns the sum of all elements in the collection
|
||||||
*/
|
*/
|
||||||
@@ -43,6 +67,18 @@ public fun Iterable<Double>.sum(): Double {
|
|||||||
return sum
|
return sum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the sum of all elements in the collection
|
||||||
|
*/
|
||||||
|
public fun Stream<Double>.sum(): Double {
|
||||||
|
val iterator = iterator()
|
||||||
|
var sum: Double = 0.0
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
sum += iterator.next()
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sum of all elements in the collection
|
* Returns the sum of all elements in the collection
|
||||||
*/
|
*/
|
||||||
@@ -55,6 +91,18 @@ public fun Iterable<Float>.sum(): Float {
|
|||||||
return sum
|
return sum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the sum of all elements in the collection
|
||||||
|
*/
|
||||||
|
public fun Stream<Float>.sum(): Float {
|
||||||
|
val iterator = iterator()
|
||||||
|
var sum: Float = 0.0f
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
sum += iterator.next()
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sum of all elements in the collection
|
* Returns the sum of all elements in the collection
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -435,6 +435,7 @@ class CollectionTest {
|
|||||||
expect(3.0) { arrayListOf(1.0, 2.0).sum() }
|
expect(3.0) { arrayListOf(1.0, 2.0).sum() }
|
||||||
expect(3000000000000) { arrayListOf<Long>(1000000000000, 2000000000000).sum() }
|
expect(3000000000000) { arrayListOf<Long>(1000000000000, 2000000000000).sum() }
|
||||||
expect(3.0.toFloat()) { arrayListOf<Float>(1.0.toFloat(), 2.0.toFloat()).sum() }
|
expect(3.0.toFloat()) { arrayListOf<Float>(1.0.toFloat(), 2.0.toFloat()).sum() }
|
||||||
|
expect(3.0.toFloat()) { streamOf<Float>(1.0.toFloat(), 2.0.toFloat()).sum() }
|
||||||
}
|
}
|
||||||
|
|
||||||
test fun takeReturnsFirstNElements() {
|
test fun takeReturnsFirstNElements() {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ fun generateCollectionsAPI(outDir: File) {
|
|||||||
// TODO: decide if sum for byte and short is needed and how to make it work
|
// TODO: decide if sum for byte and short is needed and how to make it work
|
||||||
for (numeric in listOf(Int, Long, /*Byte, Short, */ Double, Float)) {
|
for (numeric in listOf(Int, Long, /*Byte, Short, */ Double, Float)) {
|
||||||
build(builder, Iterables, numeric)
|
build(builder, Iterables, numeric)
|
||||||
|
build(builder, Streams, numeric)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (numeric in listOf(Int, Long, Byte, Short, Double, Float)) {
|
for (numeric in listOf(Int, Long, Byte, Short, Double, Float)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user