Code clean, small refactorings and tests
#KT-8987 Fixed
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
fun box(): String {
|
||||
return Z().test()
|
||||
}
|
||||
|
||||
class Z {
|
||||
fun Double.test(a: Int, b: Long, c: () -> String): String {
|
||||
return "${this}_${a}_${b}_${c()}"
|
||||
}
|
||||
|
||||
|
||||
fun test(): String {
|
||||
var invokeOrder = "";
|
||||
val expectedResult = "1.0_0_1_L"
|
||||
val expectedInvokeOrder = "1_0_L"
|
||||
var l = 1L
|
||||
var i = 0
|
||||
|
||||
var result = 1.0.test(b = { invokeOrder += "1_"; l }(), a = { invokeOrder += "0_"; i }(), c = { invokeOrder += "L"; "L" })
|
||||
if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 1: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult"
|
||||
|
||||
invokeOrder = "";
|
||||
result = 1.0.test(b = { invokeOrder += "1_"; l }(), c = { invokeOrder += "L"; "L" }, a = { invokeOrder += "0_"; i }())
|
||||
if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 2: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult"
|
||||
|
||||
|
||||
invokeOrder = "";
|
||||
result = 1.0.test(c = { invokeOrder += "L"; "L" }, b = { invokeOrder += "1_"; l }(), a = { invokeOrder += "0_"; i }())
|
||||
if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 3: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult"
|
||||
|
||||
|
||||
invokeOrder = "";
|
||||
result = 1.0.test(a = { invokeOrder += "0_"; i }(), c = { invokeOrder += "L"; "L" }, b = { invokeOrder += "1_"; l }())
|
||||
if (invokeOrder != "0_1_L" || result != expectedResult) return "fail 4: $invokeOrder != 0_1_L or $result != $expectedResult"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user