Stdlib: Add iteration over unary function, implement iterator zip and skip
This commit is contained in:
@@ -18,4 +18,9 @@ class FunctionIteratorTest {
|
||||
val list = iter.toList()
|
||||
assertEquals(arrayList(2, 1, 0), list)
|
||||
}
|
||||
|
||||
Test fun iterateOverFunction2() {
|
||||
val values = iterate<Int>(3) { n -> if (n > 0) n - 1 else null }
|
||||
assertEquals(arrayList(3, 2, 1, 0), values.toList())
|
||||
}
|
||||
}
|
||||
@@ -77,4 +77,14 @@ class IteratorsTest {
|
||||
assertEquals("13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...", fibonacci().filter { it > 10 }.makeString(limit = 10))
|
||||
assertEquals("144, 233, 377, 610, 987", fibonacci().filter { it > 100 }.takeWhile { it < 1000 }.makeString())
|
||||
}
|
||||
|
||||
test fun pairIterator() {
|
||||
val pairStr = (fibonacci() zip fibonacci().map { i -> i*2 }).makeString(limit = 10)
|
||||
assertEquals("(0, 0), (1, 2), (1, 2), (2, 4), (3, 6), (5, 10), (8, 16), (13, 26), (21, 42), (34, 68), ...", pairStr)
|
||||
}
|
||||
|
||||
test fun skippingIterator() {
|
||||
assertEquals("13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...", fibonacci().skip(7).makeString(limit = 10))
|
||||
assertEquals("13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...", fibonacci().skip(3).skip(4).makeString(limit = 10))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user