Implemented asIterable method for arrays. #KT-1313 Fixed

This commit is contained in:
Valery Kharitonov
2015-01-04 12:26:01 +03:00
committed by Ilya Ryzhenkov
parent 3954215b50
commit 38a4f86db2
3 changed files with 121 additions and 2 deletions
@@ -1,6 +1,9 @@
package test.collections
import kotlin.test.*
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
import kotlin.test.expect
import org.junit.Test as test
fun <T> checkContent(iter: Iterator<T>, length: Int, value: (Int) -> T) {
@@ -214,6 +217,28 @@ class ArraysTest {
assertEquals(listOf("aab", "aba", "ac"), array("ac", "aab", "aba").toSortedList())
}
test fun asIterable() {
val arr1 = intArray(1, 2, 3, 4, 5)
val iter1 = arr1.asIterable()
assertEquals(arr1.toList(), iter1.toList())
arr1[0] = 0
assertEquals(arr1.toList(), iter1.toList())
val arr2 = array("one", "two", "three")
val iter2 = arr2.asIterable()
assertEquals(arr2.toList(), iter2.toList())
arr2[0] = ""
assertEquals(arr2.toList(), iter2.toList())
val arr3 = IntArray(0)
val iter3 = arr3.asIterable()
assertEquals(iter3.toList(), emptyList<Int>())
val arr4 = Array(0, { "$it" })
val iter4 = arr4.asIterable()
assertEquals(iter4.toList(), emptyList<String>())
}
/*
TODO FIXME ASAP: These currently fail on JS due to missing upto() method on numbers