JS: move more test to box tests

This commit is contained in:
Alexey Andreev
2016-08-29 14:14:34 +03:00
parent cdf2212c73
commit a18f5eca2d
43 changed files with 374 additions and 456 deletions
@@ -0,0 +1,18 @@
// FILE: A.kt
package foo
open class A() {
fun f() = 3
}
fun box(): String {
return if ((A().f() + bar.A().f()) == 9) "OK" else "fail"
}
// FILE: B.kt
package bar
open class A() {
fun f() = 6
}
@@ -0,0 +1,26 @@
// FILE: a.kt
package foo
open class A() {
open fun f() = 3;
}
open class C() : B() {
override fun f() = 5
}
// FILE: b.kt
package foo
open class B() : A() {
override fun f() = 4
}
fun box(): String {
if (A().f() != 3) return "fail1"
if (B().f() != 4) return "fail2"
if (C().f() != 5) return "fail3"
return "OK"
}
@@ -0,0 +1,10 @@
// FILE: a.kt
package foo
fun f() = 3;
// FILE: b.kt
package foo
fun box() = if (f() == 3) "OK" else "fail"
@@ -0,0 +1,14 @@
// MODULE: main(module1)
// FILE: main.kt
fun box(): String {
var module1 = bar()
assertEquals("bar", module1)
return "OK"
}
// MODULE: module1
// FILE: module1.kt
fun bar() = "bar"
@@ -0,0 +1,17 @@
// MODULE: main(module1)
// FILE: main.kt
fun box(): String {
assertEquals("A: invoked from module", f("A"))
assertEquals(10, A(10).x)
return "OK"
}
// MODULE: module1
// FILE: module1.kt
public fun f(s: String): String = "${s}: invoked from module"
public class A(val x: Int)
@@ -0,0 +1,12 @@
// MODULE: module-1
// FILE: bar.kt
// MODULE_KIND: AMD
fun bar() = "bar"
// MODULE: main(module-1)
// FILE: box.kt
// MODULE_KIND: AMD
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module1
// FILE: bar.kt
// MODULE_KIND: AMD
fun bar() = "bar"
// MODULE: main(module1)
// FILE: box.kt
// MODULE_KIND: AMD
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module-1
// FILE: bar.kt
// MODULE_KIND: COMMON_JS
fun bar() = "bar"
// MODULE: main(module-1)
// FILE: box.kt
// MODULE_KIND: COMMON_JS
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module1
// FILE: bar.kt
// MODULE_KIND: COMMON_JS
fun bar() = "bar"
// MODULE: main(module1)
// FILE: box.kt
// MODULE_KIND: COMMON_JS
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module-1
// FILE: bar.kt
// MODULE_KIND: PLAIN
fun bar() = "bar"
// MODULE: main(module-1)
// FILE: box.kt
// MODULE_KIND: PLAIN
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module1
// FILE: bar.kt
// MODULE_KIND: PLAIN
fun bar() = "bar"
// MODULE: main(module1)
// FILE: box.kt
// MODULE_KIND: PLAIN
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module-1
// FILE: bar.kt
// MODULE_KIND: UMD
fun bar() = "bar"
// MODULE: main(module-1)
// FILE: box.kt
// MODULE_KIND: UMD
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,12 @@
// MODULE: module1
// FILE: bar.kt
// MODULE_KIND: UMD
fun bar() = "bar"
// MODULE: main(module1)
// FILE: box.kt
// MODULE_KIND: UMD
fun box(): String {
assertEquals("bar", bar())
return "OK"
}
@@ -0,0 +1,22 @@
package foo
class A {
operator fun component1(): Int = 1
}
operator fun A.component2(): String = "n"
fun box(): String {
val list = Array<A>(1, { A() })
var i = 0;
var s = ""
for ((a, b) in list) {
i = a;
s = b;
}
if (i != 1) return "i != 1, it: " + i
if (s != "n") return "s != 'n', it: " + s
return "OK"
}
@@ -0,0 +1,41 @@
package foo
import java.util.HashMap
operator fun <K, V> Map<K, V>.iterator(): Iterator<Map.Entry<K, V>> {
val entrySet = this.entries
return entrySet.iterator()
}
/** Returns the key of the entry */
operator fun <K, V> Map.Entry<K, V>.component1(): K {
return key
}
/** Returns the value of the entry */
operator fun <K, V> Map.Entry<K, V>.component2(): V {
return value
}
fun box(): String {
val map = HashMap<Int, String>()
map.put(1, "s1")
map.put(2, "s2")
var s1 = ""
var s2 = ""
for ((k, v) in map) {
when (k) {
2 -> s2 = v
1 -> s1 = v
else -> {
}
}
}
if (s1 != "s1") return "s1 != 's1', it: ${s1}"
if (s2 != "s2") return "s2 != 's2', it: ${s2}"
return "OK"
}
@@ -0,0 +1,42 @@
package foo
class C(val i: Int) : Comparable<C>, A() {
public override fun compareTo(other: C): Int {
return if (other is C) other.i - i else 0
}
}
operator fun ClosedRange<C>.iterator(): Iterator<C> {
var curI: Int = start.i - 1
return object : Iterator<C> {
public override fun next(): C {
curI++
return C(curI)
}
public override fun hasNext(): Boolean {
return curI <= endInclusive.i
}
}
}
open class A {
operator fun component1(): Int = 1
}
operator fun A.component2(): String = "n"
fun box(): String {
var i = 0;
var s = ""
for ((a, b) in C(0)..C(2)) {
i = a;
s = b;
}
if (i != 1) return "i != 1, it: " + i
if (s != "n") return "s != 'n', it: " + s
return "OK"
}
@@ -0,0 +1,25 @@
package foo
import java.util.ArrayList
class A {
operator fun component1(): Int = 1
}
operator fun A.component2(): String = "n"
fun box(): String {
val list = ArrayList<A>()
list.add(A())
var i = 0;
var s = ""
for ((a, b) in list) {
i = a;
s = b;
}
if (i != 1) return "i != 1, it: " + i
if (s != "n") return "s != 'n', it: " + s
return "OK"
}
@@ -0,0 +1,21 @@
package foo
operator fun Int.component1(): Int {
return this + 10;
}
operator fun Int.component2(): String = "b"
fun box(): String {
var i = 0;
var s = "";
for ((a, b) in 1..4) {
i = a
s = b
}
if (i != 14) return "i != 14, it: $i"
if (s != "b") return "s != 'b', it: $s"
return "OK"
}
@@ -0,0 +1,22 @@
package foo
operator fun Int.component1(): Int {
return this + 10;
}
operator fun Int.component2(): String = "b"
fun box(): String {
var i = 0;
var s = "";
val range = 1..4
for ((a, b) in range) {
i = a
s = b
}
if (i != 14) return "i != 14, it: $i"
if (s != "b") return "s != 'b', it: $s"
return "OK"
}
@@ -0,0 +1,41 @@
package foo
class A {
operator fun component1(): Int = 1
}
operator fun A.component2(): String = "n"
class B {
operator fun component1(): Int = 1
operator fun component2(): Int = 2
operator fun component3(): Int = 3
}
class C {
operator fun component1(): Int = 42
}
fun box(): String {
val (a, b) = A()
if (a != 1) return "a != 1, it: $a"
if (b != "n") return "b != 'n', it: $b"
var (x, y) = A()
if (x != 1) return "x != 1, it: $x"
if (y != "n") return "y != 'n', it: $y"
x = 3
if (x != 3) return "x != 3, it: $x"
y = "m"
if (y != "m") return "y != 'm', it: $y"
var (b1, b2, b3) = B()
if (b1 != 1) return "b1 != 1, it: $b1"
if (b2 != 2) return "b2 != 2, it: $b2"
if (b3 != 3) return "b3 != 3, it: $b3"
val (c) = C()
if (c != 42) return "c != 42, it: $c"
return "OK"
}