JS: create new common directory for all generated tests, migrate several tests there
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
package foo
|
||||
|
||||
data class Dat(val start: String, val middle: String, val end: String) {
|
||||
fun getLabel() : String {
|
||||
return start + end
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val d = Dat("max", "-", "min")
|
||||
assertEquals("maxmin", d.getLabel())
|
||||
val (p1, p, p2) = d
|
||||
assertEquals("max", p1)
|
||||
assertEquals("min", p2)
|
||||
return "OK"
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package foo
|
||||
|
||||
data class Dat(val start: String, val middle: String, val end: String)
|
||||
|
||||
fun box(): String {
|
||||
val d1 = Dat("OO", "-", "PS")
|
||||
val d2: Dat = d1.copy(end = "K", middle = "+")
|
||||
val d3: Dat = d2.copy(start = "O", middle = "-")
|
||||
val (p1, p, p2) = d3
|
||||
return p1 + p2
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package foo
|
||||
|
||||
data class Holder<T>(val v: T)
|
||||
|
||||
data class Dat(val start: String, val end: String)
|
||||
|
||||
data class Dat2(val start: String, val end: String)
|
||||
|
||||
class Obj(val start: String, val end: String)
|
||||
|
||||
fun box(): String {
|
||||
val d1 = Dat("a", "b")
|
||||
val d2 = Dat("a", "b")
|
||||
val d3 = Dat("a", "c")
|
||||
|
||||
val otherD1 = Dat2("a", "b")
|
||||
|
||||
assertEquals(d1, d1)
|
||||
assertEquals(d1, d2)
|
||||
assertNotEquals(d1, d3)
|
||||
|
||||
assertNotEquals(d1, otherD1)
|
||||
|
||||
var hd1 = Holder(Dat("y", "n"))
|
||||
var hd2 = Holder(Dat("y", "n"))
|
||||
var hd3 = Holder(Dat("1", "2"))
|
||||
|
||||
assertEquals(hd1, hd1)
|
||||
assertEquals(hd1, hd2)
|
||||
assertNotEquals(hd1, hd3)
|
||||
|
||||
var ho1 = Holder(Obj("+", "-"))
|
||||
var ho2 = Holder(Obj("+", "-"))
|
||||
var ho3 = Holder(Obj("*", "*"))
|
||||
|
||||
assertEquals(ho1, ho1)
|
||||
assertNotEquals(ho1, ho2)
|
||||
assertNotEquals(ho1, ho3)
|
||||
|
||||
val d1any: Any = d1
|
||||
assertTrue(d1any != "")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
data class Holder<T>(val v: T)
|
||||
|
||||
data class Dat(val start: String, val end: String)
|
||||
|
||||
class Obj(val start: String, val end: String)
|
||||
|
||||
fun <T> assertSomeNotEqual(c: Iterable<T>) {
|
||||
val it = c.iterator()
|
||||
val first = it.next()
|
||||
while (it.hasNext()) {
|
||||
val item: T = it.next()
|
||||
if (item != first) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw Exception("All elements are the same: $first")
|
||||
}
|
||||
|
||||
fun <T> assertAllEqual(c: Iterable<out T>) {
|
||||
val it = c.iterator()
|
||||
val first = it.next()
|
||||
while (it.hasNext()) {
|
||||
val item: T = it.next()
|
||||
assertEquals(first, item)
|
||||
}
|
||||
}
|
||||
|
||||
val hashCoder: (o: Any) -> Int = { o -> o.hashCode() }
|
||||
|
||||
fun <T> wrapInH(t: T) = Holder(t)
|
||||
|
||||
fun box(): String {
|
||||
|
||||
// Check that same Dat's have the same hashcode.
|
||||
val sameDs = listOf(Dat("a", "b"), Dat("a", "b"))
|
||||
assertAllEqual(sameDs.map(hashCoder))
|
||||
|
||||
// Check that different Dat's have different hashcodes (at least some of them).
|
||||
val differentDs = listOf(Dat("a", "b"), Dat("a", "c"), Dat("a", "d"))
|
||||
assertSomeNotEqual(differentDs.map(hashCoder))
|
||||
|
||||
// Check the same on Obj's, which should be always different and with different hashcodes.
|
||||
val sameOs = listOf(Obj("a", "b"), Obj("a", "b"), Obj("a", "b"))
|
||||
val differentOs = listOf(Obj("a", "b"), Obj("a", "b"), Obj("a", "b"))
|
||||
|
||||
// Obj's are always different.
|
||||
assertSomeNotEqual(sameOs.map(hashCoder))
|
||||
assertSomeNotEqual(differentOs.map(hashCoder))
|
||||
|
||||
// Both Dat's and Obj's wrapped as Holder should retain their hashcode relations.
|
||||
val sameHDs = sameDs.map { wrapInH(it) }
|
||||
assertAllEqual(sameHDs.map(hashCoder))
|
||||
val differentHDs = differentDs.map { wrapInH(it) }
|
||||
assertSomeNotEqual(differentHDs.map(hashCoder))
|
||||
|
||||
val sameHOs = sameOs.map { wrapInH(it) }
|
||||
assertSomeNotEqual(sameHOs.map(hashCoder))
|
||||
val differentHOs = differentOs.map { wrapInH(it) }
|
||||
assertSomeNotEqual(differentHOs.map(hashCoder))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package foo
|
||||
|
||||
data class Holder<T>(val v: T)
|
||||
|
||||
data class Dat(val start: String, val end: String)
|
||||
|
||||
class Obj(val start: String, val end: String)
|
||||
|
||||
fun box(): String {
|
||||
val setD = java.util.HashSet<Holder<Dat>>()
|
||||
setD.add(Holder(Dat("a", "b")))
|
||||
setD.add(Holder(Dat("a", "b")))
|
||||
setD.add(Holder(Dat("a", "b")))
|
||||
assertEquals(1, setD.size)
|
||||
|
||||
val setO = java.util.HashSet<Holder<Obj>>()
|
||||
setO.add(Holder(Obj("a", "b")))
|
||||
setO.add(Holder(Obj("a", "b")))
|
||||
setO.add(Holder(Obj("a", "b")))
|
||||
assertEquals(3, setO.size)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package foo
|
||||
|
||||
var t: Any? = null
|
||||
|
||||
data class Dat(val start: String, val middle: String, val end: String) {
|
||||
override fun toString() = "another string"
|
||||
override fun hashCode() = 371
|
||||
override fun equals(other: Any?): Boolean {
|
||||
t = other
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val d = Dat("max", "-", "min")
|
||||
val other = Dat("other", "-", "instance")
|
||||
|
||||
assertEquals(371, d.hashCode())
|
||||
assertEquals(true, d == other)
|
||||
assertEquals(other, t)
|
||||
assertEquals("another string", d.toString())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package foo
|
||||
|
||||
data class A(private val x: Int) {
|
||||
val y: Int
|
||||
get() = x
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A(23)
|
||||
|
||||
assertEquals("A(x=23)", a.toString())
|
||||
assertEquals(23, a.copy().y)
|
||||
assertEquals(42, a.copy(42).y)
|
||||
|
||||
assertEquals(A(23), A(23))
|
||||
assertNotEquals(A(42), A(23))
|
||||
|
||||
val map = mapOf(A(23) to "*", A(42) to "@")
|
||||
assertEquals("*", map[A(23)])
|
||||
assertEquals("@", map[A(42)])
|
||||
assertEquals(null, map[A(93)])
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package foo
|
||||
|
||||
data class Holder<T>(val v: T)
|
||||
|
||||
data class Dat(val start: String, val end: String)
|
||||
|
||||
class Obj(val start: String, val end: String)
|
||||
|
||||
fun box(): String {
|
||||
val d = Dat("a", "b")
|
||||
|
||||
assertEquals("Dat(start=a, end=b)", "${d}")
|
||||
|
||||
var hd = Holder(Dat("y", "n"))
|
||||
|
||||
assertEquals("Holder(v=Dat(start=y, end=n))", "${hd}")
|
||||
|
||||
var ho = Holder(Obj("+", "-"))
|
||||
|
||||
assertEquals("Holder(v=[object Object])", "${ho}")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user