Claim a stream produced from a Sequence having ORDERED property.
Add a test verifying that property is respected.
This commit is contained in:
@@ -27,7 +27,7 @@ public fun DoubleStream.asSequence(): Sequence<Double> = Sequence { iterator() }
|
||||
/**
|
||||
* Creates a sequential [Stream] instance that produces elements from the original sequence.
|
||||
*/
|
||||
public fun <T> Sequence<T>.asStream(): Stream<T> = StreamSupport.stream({ Spliterators.spliteratorUnknownSize(iterator(), 0) }, 0, false)
|
||||
public fun <T> Sequence<T>.asStream(): Stream<T> = StreamSupport.stream({ Spliterators.spliteratorUnknownSize(iterator(), Spliterator.ORDERED) }, Spliterator.ORDERED, false)
|
||||
|
||||
/**
|
||||
* Returns a [List] containing all elements produced by this stream.
|
||||
|
||||
@@ -41,6 +41,14 @@ class StreamsTest {
|
||||
assertEquals(expected.limit(7).toList(), stream.limit(7).toList())
|
||||
}
|
||||
|
||||
@Test fun asParallelStream() {
|
||||
val sequence = generateSequence(0) { it + 2 } // even numbers
|
||||
val stream = sequence.asStream().parallel().map { it / 2 }
|
||||
|
||||
val n = 100000
|
||||
val expected = (0 until n).toList()
|
||||
|
||||
assertEquals(expected, stream.limit(n.toLong()).toList())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user