Allow dropping and taking a lot of elements in very long sequences

For example allow dropping and taking Int.MAX_VALUE elements from
a sequence that is a result of another Int.MAX_VALUE dropping.
This commit is contained in:
Ilya Gorbunov
2018-08-09 18:57:01 +03:00
parent eaa0902ea5
commit c44f62a3d4
3 changed files with 23 additions and 2 deletions
@@ -41,5 +41,21 @@ class IndexOverflowJVMTest {
@Test
fun dropTwiceMaxValue() {
val halfMax = (1 shl 30) + 1
val dropOnce = longCountSequence.drop(halfMax)
val dropTwice = dropOnce.drop(halfMax)
val expectedEnd = halfMax.toLong() * 2
assertEquals(expectedEnd, dropTwice.first())
val dropTake = dropOnce.take(halfMax + 1)
assertEquals(expectedEnd, dropTake.last())
}
}