JS: move more test to box tests

This commit is contained in:
Alexey Andreev
2016-08-29 14:51:32 +03:00
parent a18f5eca2d
commit 9bf124af3f
129 changed files with 766 additions and 685 deletions
@@ -0,0 +1,10 @@
package foo
class Box<T>(t: T) {
var value = t
}
fun box(): String {
val box: Box<Int> = Box<Int>(1)
return if (box.value == 1) "OK" else "fail"
}
@@ -0,0 +1,18 @@
package foo
public fun <T> List<T>.some(): T = this[0]
public fun String.some(): Char = this[0]
public val <T> List<T>.some: T get() = this[1]
public val String.some: Char get() = this[1]
fun box(): String {
val data = listOf("foo", "bar")
assertEquals("foo", data.some())
assertEquals("bar", data.some)
assertEquals('f', "foo".some())
assertEquals('a', "bar".some)
return "OK"
}
@@ -0,0 +1,20 @@
package foo
class A() {
fun eval() = 3
fun eval(a: Int) = 4
fun eval(a: String) = 5
fun eval(a: String, b: Int) = 6
}
fun box(): String {
if (A().eval() != 3) return "fail1"
if (A().eval(2) != 4) return "fail2"
if (A().eval("3") != 5) return "fail3"
if (A().eval("a", 3) != 6) return "fail4"
return "OK"
}
@@ -0,0 +1,31 @@
package foo
interface TraitA
interface TraitB
public open abstract class Node<T : TraitA>() where T : TraitB {
public abstract fun bar(arg: T): String
public abstract fun bar(arg: TraitA): String
public abstract fun bar(arg: TraitB): String
}
class ClassAB : TraitA, TraitB
public class MyNode : Node<ClassAB>() {
override fun bar(arg: ClassAB): String = "MyNode.bar(ClassAB)"
override fun bar(arg: TraitA): String = "MyNode.bar(TraitA)"
override fun bar(arg: TraitB): String = "MyNode.bar(TraitB)"
}
fun box(): String {
var node = MyNode()
val traitA: TraitA = ClassAB()
val traitB: TraitB = ClassAB()
assertEquals("MyNode.bar(ClassAB)", node.bar(ClassAB()))
assertEquals("MyNode.bar(TraitA)", node.bar(traitA))
assertEquals("MyNode.bar(TraitB)", node.bar(traitB))
return "OK"
}
@@ -0,0 +1,15 @@
package foo
fun Int.foo() {
}
fun String.foo() {
}
val Int.bar: Int get() = 1
val String.bar: Int get() = 2
fun box(): String {
val a = 43
if (a.bar != 1) return "a.bar != 1, it: ${a.bar}"
return "OK"
}