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
@@ -152,6 +152,11 @@ public class SequenceTest {
assertEquals("13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...", fibonacci().drop(7).joinToString(limit = 10))
assertEquals("13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...", fibonacci().drop(3).drop(4).joinToString(limit = 10))
assertFailsWith<IllegalArgumentException> { fibonacci().drop(-1) }
val dropMax = fibonacci().drop(Int.MAX_VALUE)
val dropMore = dropMax.drop(Int.MAX_VALUE)
val takeMore = dropMax.take(Int.MAX_VALUE)
}
@Test fun take() {