stdlib: Introduced filterIsInstance version

without class-literal as a parameter
This commit is contained in:
Denis Zharkov
2014-11-04 19:02:16 +04:00
committed by Andrey Breslav
parent da5164acd8
commit e768b4e285
5 changed files with 161 additions and 6 deletions
@@ -104,4 +104,42 @@ class CollectionJVMTest {
test fun takeReturnsFirstNElements() {
expect(setOf(1, 2)) { sortedSetOf(1, 2, 3, 4, 5).take(2).toSet() }
}
test fun filterIsInstanceList() {
val src: List<Any> = listOf(1,2,3.toDouble(), "abc", "cde")
val ints: List<Int> = src.filterIsInstance<Int>()
assertEquals(arrayListOf(1,2), ints)
val doubles: List<Double> = src.filterIsInstance<Double>()
assertEquals(arrayListOf(3.0), doubles)
val strings: List<String> = src.filterIsInstance<String>()
assertEquals(arrayListOf("abc", "cde"), strings)
val anys: List<Any> = src.filterIsInstance<Any>()
assertEquals(src.toList(), anys)
val chars: List<Char> = src.filterIsInstance<Char>()
assertEquals(0, chars.size())
}
test fun filterIsInstanceArray() {
val src: Array<Any> = array(1,2,3.toDouble(), "abc", "cde")
val ints: List<Int> = src.filterIsInstance<Int>()
assertEquals(arrayListOf(1,2), ints)
val doubles: List<Double> = src.filterIsInstance<Double>()
assertEquals(arrayListOf(3.0), doubles)
val strings: List<String> = src.filterIsInstance<String>()
assertEquals(arrayListOf("abc", "cde"), strings)
val anys: List<Any> = src.filterIsInstance<Any>()
assertEquals(src.toList(), anys)
val chars: List<Char> = src.filterIsInstance<Char>()
assertEquals(0, chars.size())
}
}