add test files

This commit is contained in:
pTalanov
2012-02-27 21:55:57 +04:00
parent 645a3a9f2f
commit c21ea8aa86
240 changed files with 16998 additions and 0 deletions
@@ -0,0 +1,13 @@
package foo
fun Int.same() : Int {
return this
}
fun Int.quadruple() : Int {
return same() * 4;
}
fun box(): Boolean {
return ((3 + 4).quadruple() == 28)
}
@@ -0,0 +1,22 @@
package foo
class M() {
var m = 0
fun eval() {
var d = {
var c = {Int.() -> this + 3}
m += 3.c()
}
d();
}
}
fun box() : Boolean {
var a = M()
if (a.m != 0) return false;
a.eval()
if (a.m != 6) return false;
return true;
}
@@ -0,0 +1,7 @@
package foo
fun apply(i : Int, f : Int.(Int) -> Int) = i.f(1);
fun box() : Boolean {
return (apply(1, {i -> i + this})) == 2
}
@@ -0,0 +1,15 @@
package foo
class A(var a : Int) {
fun eval() = f();
}
fun A.f() : Int {
a = 3
return 10
}
fun box(): Boolean {
val a = A(4)
return (a.eval() == 10) && (a.a == 3)
}
@@ -0,0 +1,13 @@
package foo
fun Int.same() : Int {
return this
}
fun Int.quadruple() : Int {
return same() * 4;
}
fun box(): Boolean {
return (3.quadruple() == 12)
}
@@ -0,0 +1,24 @@
package foo
import java.util.*
fun <T> ArrayList<T>.findAll(predicate: (T) -> Boolean): ArrayList<T> {
val result = ArrayList<T>()
for(val t in this) {
if (predicate(t)) result.add(t)
}
return result
}
fun box(): String {
val list: ArrayList<Int> = ArrayList<Int>()
list.add(2)
list.add(3)
list.add(5)
val m: ArrayList<Int> = list.findAll<Int>({(name: Int) -> name < 4})
return if (m.size() == 2) "OK" else "fail"
}
@@ -0,0 +1,9 @@
package foo
fun Int.quadruple() : Int {
return this * 4;
}
fun box(): Boolean {
return (3.quadruple() == 12)
}
@@ -0,0 +1,15 @@
package foo
class A(var a : Int) {
fun Int.modify() : Int {
return this * 3;
}
fun eval() = a.modify();
}
fun box(): Boolean {
val a = A(4)
return (a.eval() == 12)
}
@@ -0,0 +1,20 @@
package foo
open class A(var a : Int) {
open fun Int.modify() : Int {
return this * 3;
}
fun eval() = a.modify();
}
class B(a : Int) : A(a) {
override fun Int.modify() : Int {
return this - 2;
}
}
fun box(): Boolean {
return (A(4).eval() == 12) && (A(2).eval() == 6) && (B(3).eval() == 1)
}