Special case of slice for int ranges, sliceArray returning array.
#KT-8711
This commit is contained in:
@@ -387,20 +387,37 @@ class ArraysTest {
|
||||
}
|
||||
|
||||
test fun slice() {
|
||||
val iter = listOf(3, 1, 2)
|
||||
val iter: Iterable<Int> = listOf(3, 1, 2)
|
||||
|
||||
assertEquals(listOf("B"), arrayOf("A", "B", "C").slice(1..1))
|
||||
assertEquals(listOf('E', 'B', 'C'), arrayOf('A', 'B', 'C', 'E').slice(iter))
|
||||
|
||||
assertEquals(listOf<Int>(), arrayOf<Int>().slice(5..4))
|
||||
assertEquals(listOf<Int>(), arrayOf(1, 2, 3).slice(5..1))
|
||||
assertEquals(listOf(2, 3, 9), arrayOf(2, 3, 9, 2, 3, 9).slice(iter))
|
||||
assertEquals(listOf(2.0, 3.0), arrayOf(2.0, 3.0, 9.0).slice(0..1))
|
||||
assertEquals(listOf(2f, 3f), arrayOf(2f, 3f, 9f).slice(0..1))
|
||||
assertEquals(listOf<Byte>(127, 100), arrayOf<Byte>(50, 100, 127).slice(2 downTo 1))
|
||||
assertEquals(listOf<Short>(200, 100), arrayOf<Short>(50, 100, 200).slice(2 downTo 1))
|
||||
assertEquals(listOf(100L, 200L, 30L), arrayOf(50L, 100L, 200L, 30L).slice(1..3))
|
||||
assertEquals(listOf(true, false, true), arrayOf(true, false, true, true).slice(iter))
|
||||
assertEquals(listOf<Int>(), intArrayOf(1, 2, 3).slice(5..1))
|
||||
assertEquals(listOf(2, 3, 9), intArrayOf(2, 3, 9, 2, 3, 9).slice(iter))
|
||||
assertEquals(listOf(2.0, 3.0), doubleArrayOf(2.0, 3.0, 9.0).slice(0..1))
|
||||
assertEquals(listOf(2f, 3f), floatArrayOf(2f, 3f, 9f).slice(0..1))
|
||||
assertEquals(listOf<Byte>(127, 100), byteArrayOf(50, 100, 127).slice(2 downTo 1))
|
||||
assertEquals(listOf<Short>(200, 100), shortArrayOf(50, 100, 200).slice(2 downTo 1))
|
||||
assertEquals(listOf(100L, 200L, 30L), longArrayOf(50L, 100L, 200L, 30L).slice(1..3))
|
||||
assertEquals(listOf(true, false, true), booleanArrayOf(true, false, true, true).slice(iter))
|
||||
}
|
||||
|
||||
test fun sliceArray() {
|
||||
val coll: Collection<Int> = listOf(3, 1, 2)
|
||||
|
||||
assertArrayNotSameButEquals(arrayOf("B"), arrayOf("A", "B", "C").sliceArray(1..1))
|
||||
assertArrayNotSameButEquals(arrayOf('E', 'B', 'C'), arrayOf('A', 'B', 'C', 'E').sliceArray(coll))
|
||||
|
||||
assertArrayNotSameButEquals(arrayOf<Int>(), arrayOf<Int>().sliceArray(5..4))
|
||||
assertArrayNotSameButEquals(intArrayOf(), intArrayOf(1, 2, 3).sliceArray(5..1))
|
||||
assertArrayNotSameButEquals(intArrayOf(2, 3, 9), intArrayOf(2, 3, 9, 2, 3, 9).sliceArray(coll))
|
||||
assertArrayNotSameButEquals(doubleArrayOf(2.0, 3.0), doubleArrayOf(2.0, 3.0, 9.0).sliceArray(0..1))
|
||||
assertArrayNotSameButEquals(floatArrayOf(2f, 3f), floatArrayOf(2f, 3f, 9f).sliceArray(0..1))
|
||||
// assertArrayNotSameButEquals(byteArrayOf(127, 100), byteArrayOf(50, 100, 127).sliceArray(2 downTo 1))
|
||||
// assertArrayNotSameButEquals(shortArrayOf(200, 100), shortArrayOf(50, 100, 200).sliceArray(2 downTo 1))
|
||||
assertArrayNotSameButEquals(longArrayOf(100L, 200L, 30L), longArrayOf(50L, 100L, 200L, 30L).sliceArray(1..3))
|
||||
assertArrayNotSameButEquals(booleanArrayOf(true, false, true), booleanArrayOf(true, false, true, true).sliceArray(coll))
|
||||
}
|
||||
|
||||
test fun asIterable() {
|
||||
|
||||
Reference in New Issue
Block a user