mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
70 lines
1.0 KiB
Plaintext
70 lines
1.0 KiB
Plaintext
use "ounit"
|
|
use "functional"
|
|
|
|
def testAdditionOnNumbers() {
|
|
assertEquals(6, 0 + 1 + 2 + 3)
|
|
}
|
|
|
|
def testSubtractionOnNumbers() {
|
|
assertEquals(-6, 0 - 1 - 2 - 3)
|
|
}
|
|
|
|
def testPrefixIncrement() {
|
|
a = 8
|
|
assertEquals(9, ++a)
|
|
assertEquals(9, a)
|
|
}
|
|
|
|
def testPostfixIncrement() {
|
|
a = 8
|
|
assertEquals(8, a++)
|
|
assertEquals(9, a)
|
|
}
|
|
|
|
def testStringReversing() {
|
|
assertEquals("tset", -"test")
|
|
}
|
|
|
|
def testStringMultiplication() {
|
|
assertEquals("******", "*" * 6)
|
|
}
|
|
|
|
def testTypes() {
|
|
assertSameType(0, 0.0)
|
|
}
|
|
|
|
/*def testFail() {
|
|
assertTrue(false)
|
|
}*/
|
|
|
|
def testScope() {
|
|
x = 5
|
|
def func() {
|
|
assertEquals(5, x)
|
|
x += 10
|
|
assertEquals(15, x)
|
|
}
|
|
func();
|
|
assertEquals(15, x)
|
|
}
|
|
|
|
def testFibonacci() {
|
|
def fib(n) {
|
|
if n < 2 return n
|
|
return fib(n-2) + fib(n-1)
|
|
}
|
|
assertEquals(3, fib(4))
|
|
assertEquals(21, fib(8))
|
|
}
|
|
|
|
def testFunctionalChain() {
|
|
data = [1,2,3,4,5,6,7]
|
|
result = chain(data,
|
|
::filter, def(x) = x <= 4,
|
|
::sortby, def(x) = -x,
|
|
::map, def(x) = x * 2,
|
|
)
|
|
assertEquals([8,6,4,2], result)
|
|
}
|
|
|
|
println runTests() |