Test equals/hashCode/toString for function references
This commit is contained in:
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
import kotlin.test.*
|
||||
|
||||
fun top() = 42
|
||||
|
||||
fun Int.intExt(): Int = this
|
||||
|
||||
class A {
|
||||
fun mem() {}
|
||||
}
|
||||
|
||||
class B {
|
||||
fun mem() {}
|
||||
}
|
||||
|
||||
|
||||
fun checkEqual(x: Any, y: Any) {
|
||||
assertEquals(x, y)
|
||||
assertEquals(x.hashCode(), y.hashCode(), "Elements are equal but their hash codes are not: ${x.hashCode()} != ${y.hashCode()}")
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
checkEqual(::top, ::top)
|
||||
checkEqual(Int::intExt, Int::intExt)
|
||||
checkEqual(A::mem, A::mem)
|
||||
|
||||
assertFalse(::top == Int::intExt)
|
||||
assertFalse(::top == A::mem)
|
||||
assertFalse(A::mem == B::mem)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package test
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
fun top() = 42
|
||||
|
||||
fun String.ext(): Int = 0
|
||||
fun IntRange?.ext2(): Array<Int?> = arrayOfNulls(0)
|
||||
|
||||
class A {
|
||||
fun mem(): String = ""
|
||||
}
|
||||
|
||||
fun assertToString(s: String, x: Any) {
|
||||
assertEquals(s, x.toString())
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertToString("fun top(): kotlin.Int", ::top)
|
||||
assertToString("fun kotlin.String.ext(): kotlin.Int", String::ext)
|
||||
assertToString("fun kotlin.IntRange?.ext2(): kotlin.Array<kotlin.Int?>", IntRange::ext2)
|
||||
assertToString("fun test.A.mem(): kotlin.String", A::mem)
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user