JS test: added inline tests

This commit is contained in:
Alexey Tsvetkov
2014-09-29 16:00:18 +04:00
committed by Zalim Bashorov
parent 987708680f
commit 3f2d4b31be
112 changed files with 4442 additions and 0 deletions
@@ -0,0 +1,41 @@
package foo
// CHECK_CONTAINS_NO_CALLS: maxBySquare
data class Result(var value: Int = 0, var invocationCount: Int = 0)
inline fun maxBy(a: Array<Int>, inline keyFun: (Int) -> Int): Int {
var maxVal = a[0]
var maxKey = keyFun(maxVal)
for (element in a) {
val key = keyFun(element)
if (key > maxKey) {
maxVal = element
maxKey = key
}
}
return maxVal
}
fun maxBySquare(a: Array<Int>, r: Result): Result {
var invocationCount = 0
val maxVal = maxBy(a, {(x) -> invocationCount++; x * x;})
r.value = maxVal
r.invocationCount = invocationCount
return r
}
fun box(): String {
var r1 = maxBySquare(array(1,2,3,4,5), Result())
assertEquals(Result(5, 6), r1)
var r2 = maxBySquare(array(-5,1,2,3,4), Result())
assertEquals(Result(-5, 6), r2)
return "OK"
}