| interface Id<T> { |
| val id: T |
| } |
| |
| data class Actor ( |
| override val id: Int, |
| val firstName: String, |
| val lastName: String |
| ) : Id<Int> |
| |
| fun box(): String { |
| val a1 = Actor(1, "Jeff", "Bridges") |
| |
| val a1c = a1.copy() |
| if (a1c.id != a1.id) return "Failed: a1.copy().id==${a1c.id}" |
| |
| val a2 = Actor(2, "Jeff", "Bridges") |
| if (a2 == a1) return "Failed: a2==a1" |
| |
| // Assume that our hashCode is good enough for this test :) |
| if (a2.hashCode() == a1.hashCode()) return "Failed: a2.hashCode()==a1.hashCode()" |
| |
| a1.toString() |
| |
| return "OK" |
| } |