Provide unzip method for Iterables, Arrays and Sequences of pairs.

#KT-5793 Fixed
This commit is contained in:
Ilya Gorbunov
2015-07-14 16:23:32 +03:00
parent f604eef2fe
commit da3ec891d0
3 changed files with 65 additions and 2 deletions
@@ -621,6 +621,19 @@ class CollectionTest {
assertEquals(e, 5)
}
test fun unzipList() {
val list = listOf(1 to 'a', 2 to 'b', 3 to 'c')
val (ints, chars) = list.unzip()
assertEquals(listOf(1, 2, 3), ints)
assertEquals(listOf('a', 'b', 'c'), chars)
}
test fun unzipArray() {
val array = arrayOf(1 to 'a', 2 to 'b', 3 to 'c')
val (ints, chars) = array.unzip()
assertEquals(listOf(1, 2, 3), ints)
assertEquals(listOf('a', 'b', 'c'), chars)
}
test fun specialLists() {
compare(arrayListOf<Int>(), listOf<Int>()) { listBehavior() }
@@ -291,8 +291,7 @@ public class SequenceTest {
assertEquals(listOf(0, 1, 3, 4), result.toList())
}
test
fun flatten() {
test fun flatten() {
val data = sequenceOf(1, 2).map { sequenceOf(0..it) }
assertEquals(listOf(0, 1, 0, 1, 2), data.flatten().toList())
}
@@ -307,6 +306,12 @@ public class SequenceTest {
assertEquals(listOf(13, 34, 55, 144), sequence.distinctBy { it % 4 }.toList())
}
test fun unzip() {
val seq = sequenceOf(1 to 'a', 2 to 'b', 3 to 'c')
val (ints, chars) = seq.unzip()
assertEquals(listOf(1, 2, 3), ints)
assertEquals(listOf('a', 'b', 'c'), chars)
}
/*
test fun pairIterator() {