2015-07-07 19:44:33 +00:00
|
|
|
|
2015-07-08 14:26:01 +00:00
|
|
|
test_call = fn () {
|
|
|
|
ret = fn(){[1,fn(){[4,5,6]},3]}()[1]()[1]
|
|
|
|
assert(ret == 5)
|
|
|
|
}
|
|
|
|
|
2015-07-25 17:34:10 +00:00
|
|
|
test_undefined = fn () {
|
|
|
|
assert(undefined == undefined)
|
|
|
|
assert(!(undefined != undefined))
|
|
|
|
|
|
|
|
a = undefined
|
|
|
|
assert(a == undefined)
|
|
|
|
assert(!(a != undefined))
|
|
|
|
assert(!(a <= undefined))
|
|
|
|
assert(!(a < undefined))
|
|
|
|
assert(!(a >= undefined))
|
|
|
|
assert(!(a > undefined))
|
|
|
|
assert(undefined == a)
|
|
|
|
assert(!(undefined != a))
|
|
|
|
assert(!(undefined <= a))
|
|
|
|
assert(!(undefined < a))
|
|
|
|
assert(!(undefined >= a))
|
|
|
|
assert(!(undefined > a))
|
|
|
|
}
|
|
|
|
|
2015-07-08 14:26:01 +00:00
|
|
|
test_closure = fn () {
|
|
|
|
make_func = fn (mut x) {
|
|
|
|
mut n = 100
|
|
|
|
fn () {
|
|
|
|
n = n + 1
|
|
|
|
x = x + 1 + n
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
f = make_func(10)
|
|
|
|
f()
|
|
|
|
f()
|
|
|
|
ret = f()
|
|
|
|
|
|
|
|
assert(ret == 319)
|
|
|
|
}
|
|
|
|
|
2015-07-21 10:45:24 +00:00
|
|
|
test_array = fn () {
|
|
|
|
a = [1,2,3]
|
|
|
|
assert(a.size() == 3)
|
|
|
|
|
|
|
|
a.push(4)
|
|
|
|
assert(a.size() == 4)
|
|
|
|
|
|
|
|
b = []
|
|
|
|
assert(b.size() == 0)
|
|
|
|
}
|
|
|
|
|
2015-07-23 01:14:55 +00:00
|
|
|
g_ = 1
|
|
|
|
|
|
|
|
test_function = fn () {
|
|
|
|
a = 1
|
|
|
|
make = fn () {
|
|
|
|
b = 1
|
|
|
|
fn (c) {
|
|
|
|
g_ + a + b + c
|
|
|
|
}
|
|
|
|
}
|
|
|
|
f = make()
|
|
|
|
assert(f(1) == 4)
|
|
|
|
}
|
|
|
|
|
|
|
|
test_object = fn () {
|
|
|
|
n = 1
|
|
|
|
o = {
|
|
|
|
n: 123,
|
|
|
|
s: 'str',
|
|
|
|
f1: fn (x) { x + this.n },
|
|
|
|
f2: fn (x) { x + n }
|
|
|
|
}
|
|
|
|
assert(o.size() == 4)
|
|
|
|
assert(o.f1(10) == 133)
|
2015-07-25 22:59:54 +00:00
|
|
|
assert(o.f2(10) == 11)
|
2015-07-23 01:14:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
test_object_factory = fn () {
|
|
|
|
ctor = fn (init) {
|
|
|
|
mut n = init
|
|
|
|
|
|
|
|
{
|
|
|
|
add: fn (x) {
|
|
|
|
n = n + x
|
|
|
|
},
|
|
|
|
sub: fn (x) {
|
|
|
|
n = n - x
|
|
|
|
},
|
|
|
|
val: fn () {
|
|
|
|
n
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
calc = ctor(10)
|
|
|
|
|
|
|
|
assert(calc.val() == 10)
|
|
|
|
assert(calc.add(1) == 11)
|
|
|
|
assert(calc.sub(1) == 10)
|
|
|
|
}
|
|
|
|
|
|
|
|
test_sum = fn () {
|
|
|
|
mut i = 1
|
|
|
|
mut ret = 0
|
|
|
|
while i <= 10 {
|
|
|
|
ret = ret + i
|
|
|
|
i = i + 1
|
|
|
|
}
|
|
|
|
|
|
|
|
assert(ret == 55)
|
|
|
|
}
|
|
|
|
|
2015-07-07 19:44:33 +00:00
|
|
|
test_fib = fn () {
|
|
|
|
fib = fn (x) {
|
|
|
|
if x < 2 {
|
|
|
|
x
|
|
|
|
} else {
|
|
|
|
self(x - 2) + self(x -1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ret = fib(15)
|
|
|
|
|
|
|
|
assert(ret == 610)
|
|
|
|
}
|
|
|
|
|
2015-07-23 01:14:55 +00:00
|
|
|
test_interpolated_string = fn () {
|
|
|
|
hello = "Hello"
|
|
|
|
world = "World!"
|
|
|
|
ret = "{hello} {world}"
|
|
|
|
assert(ret == 'Hello World!')
|
|
|
|
}
|
|
|
|
|
2015-07-08 14:26:01 +00:00
|
|
|
test_call()
|
|
|
|
test_closure()
|
2015-07-25 17:34:10 +00:00
|
|
|
test_undefined()
|
2015-07-21 10:45:24 +00:00
|
|
|
test_array()
|
2015-07-23 01:14:55 +00:00
|
|
|
test_function()
|
|
|
|
test_object()
|
|
|
|
test_object_factory()
|
2015-07-07 19:44:33 +00:00
|
|
|
test_sum()
|
|
|
|
test_fib()
|
2015-07-23 01:14:55 +00:00
|
|
|
test_interpolated_string()
|