Add samples for flatten, unzip functions

This commit is contained in:
kvirolainen
2020-01-05 13:18:54 +03:00
committed by Abduqodiri Qurbonzoda
parent 41d5615608
commit 36984009e9
2 changed files with 32 additions and 0 deletions
@@ -242,6 +242,32 @@ class Sequences {
assertPrints(even, "[0, 2, 8, 34]")
assertPrints(odd, "[1, 1, 3, 5, 13, 21]")
}
@Sample
fun flattenSequenceOfSequences() {
val sequence: Sequence<Int> = generateSequence(1) { it + 1 }
val sequenceOfSequences: Sequence<Sequence<Int>> = sequence.map { number ->
generateSequence { number }.take(number)
}
assertPrints(sequenceOfSequences.flatten().take(10).toList(), "[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]")
}
@Sample
fun flattenSequenceOfLists() {
val sequence: Sequence<String> = sequenceOf("123", "45")
val sequenceOfLists: Sequence<List<Char>> = sequence.map { it.toList() }
assertPrints(sequenceOfLists.flatten().toList(), "[1, 2, 3, 4, 5]")
}
@Sample
fun unzip() {
val result = generateSequence(0 to 1) { it.first + 1 to it.second * 2 }.take(8).unzip()
assertPrints(result.first.toList(), "[0, 1, 2, 3, 4, 5, 6, 7]")
assertPrints(result.second.toList(), "[1, 2, 4, 8, 16, 32, 64, 128]")
}
}
}