JS: create new common directory for all generated tests, migrate several tests there

This commit is contained in:
Alexey Andreev
2016-08-26 16:44:48 +03:00
parent 34a57f863b
commit 2bf0199959
321 changed files with 2123 additions and 2001 deletions
+16
View File
@@ -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
View File
@@ -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
}
+44
View File
@@ -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"
}
+67
View File
@@ -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"
}
+23
View File
@@ -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"
}
+25
View File
@@ -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"
}
+23
View File
@@ -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"
}