Implemented indexOfFirst/Last(predicate). #KT-6577 Fixed
This commit is contained in:
committed by
Ilya Ryzhenkov
parent
38a4f86db2
commit
c8094e7587
@@ -165,7 +165,37 @@ class ArraysTest {
|
||||
expect(0) { array("cat", "dog", "bird").indexOf("cat") }
|
||||
expect(1) { array("cat", "dog", "bird").indexOf("dog") }
|
||||
expect(2) { array("cat", "dog", "bird").indexOf("bird") }
|
||||
expect(0) { array(null, "dog", null).indexOf(null) }
|
||||
expect(0) { array(null, "dog", null).indexOf(null : String?)}
|
||||
|
||||
expect(-1) { array("cat", "dog", "bird").indexOfFirst { it.contains("p") } }
|
||||
expect(0) { array("cat", "dog", "bird").indexOfFirst { it.startsWith('c') } }
|
||||
expect(1) { array("cat", "dog", "bird").indexOfFirst { it.startsWith('d') } }
|
||||
expect(2) { array("cat", "dog", "bird").indexOfFirst { it.endsWith('d') } }
|
||||
|
||||
expect(-1) { streamOf("cat", "dog", "bird").indexOfFirst { it.contains("p") } }
|
||||
expect(0) { streamOf("cat", "dog", "bird").indexOfFirst { it.startsWith('c') } }
|
||||
expect(1) { streamOf("cat", "dog", "bird").indexOfFirst { it.startsWith('d') } }
|
||||
expect(2) { streamOf("cat", "dog", "bird").indexOfFirst { it.endsWith('d') } }
|
||||
}
|
||||
|
||||
test fun lastIndexOf() {
|
||||
expect(-1) { array("cat", "dog", "bird").lastIndexOf("mouse") }
|
||||
expect(0) { array("cat", "dog", "bird").lastIndexOf("cat") }
|
||||
expect(1) { array("cat", "dog", "bird").lastIndexOf("dog") }
|
||||
expect(2) { array(null, "dog", null).lastIndexOf(null : String?)}
|
||||
expect(3) { array("cat", "dog", "bird", "dog").lastIndexOf("dog") }
|
||||
|
||||
expect(-1) { array("cat", "dog", "bird").indexOfLast { it.contains("p") } }
|
||||
expect(0) { array("cat", "dog", "bird").indexOfLast { it.startsWith('c') } }
|
||||
expect(2) { array("cat", "dog", "cap", "bird").indexOfLast { it.startsWith('c') } }
|
||||
expect(2) { array("cat", "dog", "bird").indexOfLast { it.endsWith('d') } }
|
||||
expect(3) { array("cat", "dog", "bird", "red").indexOfLast { it.endsWith('d') } }
|
||||
|
||||
expect(-1) { streamOf("cat", "dog", "bird").indexOfLast { it.contains("p") } }
|
||||
expect(0) { streamOf("cat", "dog", "bird").indexOfLast { it.startsWith('c') } }
|
||||
expect(2) { streamOf("cat", "dog", "cap", "bird").indexOfLast { it.startsWith('c') } }
|
||||
expect(2) { streamOf("cat", "dog", "bird").indexOfLast { it.endsWith('d') } }
|
||||
expect(3) { streamOf("cat", "dog", "bird", "red").indexOfLast { it.endsWith('d') } }
|
||||
}
|
||||
|
||||
test fun plus() {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package test.collections
|
||||
|
||||
import org.junit.Test
|
||||
import java.util.ArrayList
|
||||
import java.util.LinkedHashSet
|
||||
import kotlin.test.*
|
||||
import java.util.*
|
||||
|
||||
fun <T> iterableOf(vararg items: T): Iterable<T> = IterableWrapper(items.toList())
|
||||
|
||||
@@ -35,6 +36,18 @@ abstract class OrderedIterableTests<T : Iterable<String>>(data: T, empty: T) : I
|
||||
expect(-1) { data.lastIndexOf("zap") }
|
||||
}
|
||||
|
||||
Test fun indexOfFirst() {
|
||||
expect(-1) { data.indexOfFirst { it.contains("p") } }
|
||||
expect(0) { data.indexOfFirst { it.startsWith('f') } }
|
||||
expect(-1) { empty.indexOfFirst { it.startsWith('f') } }
|
||||
}
|
||||
|
||||
Test fun indexOfLast() {
|
||||
expect(-1) { data.indexOfLast { it.contains("p") } }
|
||||
expect(1) { data.indexOfLast { it.length() == 3 } }
|
||||
expect(-1) { empty.indexOfLast { it.startsWith('f') } }
|
||||
}
|
||||
|
||||
Test fun elementAt() {
|
||||
expect("foo") { data.elementAt(0) }
|
||||
expect("bar") { data.elementAt(1) }
|
||||
|
||||
Reference in New Issue
Block a user