2023-09-09 15:52:32 +03:00
|
|
|
use ounit, types, functional, date, files
|
2016-02-19 13:27:54 +02:00
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
2016-04-03 16:21:19 +03:00
|
|
|
/*def testFail() {
|
2016-02-19 13:27:54 +02:00
|
|
|
assertTrue(false)
|
2016-04-03 16:21:19 +03:00
|
|
|
}*/
|
2016-02-19 13:27:54 +02:00
|
|
|
|
2016-04-03 12:26:54 +03:00
|
|
|
def testScope() {
|
|
|
|
x = 5
|
|
|
|
def func() {
|
|
|
|
assertEquals(5, x)
|
|
|
|
x += 10
|
|
|
|
assertEquals(15, x)
|
|
|
|
}
|
|
|
|
func();
|
|
|
|
assertEquals(15, x)
|
|
|
|
}
|
|
|
|
|
2016-04-03 16:21:19 +03:00
|
|
|
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))
|
|
|
|
}
|
|
|
|
|
2016-04-08 19:12:22 +03:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
2016-05-19 14:02:46 +03:00
|
|
|
|
|
|
|
// --- Date
|
|
|
|
def testNewDate() {
|
|
|
|
d = newDate(2016, 04, 10)
|
|
|
|
assertEquals(2016, d.year)
|
|
|
|
assertEquals(4, d.month)
|
|
|
|
assertEquals(10, d.day)
|
|
|
|
assertEquals(0, d.hour)
|
|
|
|
assertEquals(0, d.minute)
|
|
|
|
assertEquals(0, d.second)
|
|
|
|
assertEquals(0, d.millisecond)
|
|
|
|
}
|
|
|
|
|
|
|
|
def testCompareDates() {
|
|
|
|
assertTrue(newDate(2016, 04, 10) > newDate(2015, 03, 11))
|
|
|
|
assertTrue(newDate(2012, 04, 10) < newDate(2015, 03, 11))
|
|
|
|
assertTrue(newDate(2015, 03, 11, 0, 0, 0) == newDate(2015, 03, 11))
|
|
|
|
}
|
|
|
|
|
|
|
|
def testDateFormat() {
|
|
|
|
d = formatDate(newDate(2016, 04, 10), newFormat("yyyy/MM/dd HH:mm:ss"))
|
|
|
|
assertEquals("2016/05/10 00:00:00", d)
|
|
|
|
}
|
|
|
|
|
|
|
|
def testDateParse() {
|
|
|
|
d = parseDate("2016/05/10", newFormat("yyyy/MM/dd"))
|
|
|
|
assertEquals(2016, d.year)
|
|
|
|
assertEquals(4, d.month)
|
|
|
|
assertEquals(10, d.day)
|
|
|
|
assertEquals(0, d.hour)
|
|
|
|
}
|
|
|
|
|
2016-06-19 11:22:20 +03:00
|
|
|
// --- Files
|
|
|
|
def testFiles() {
|
|
|
|
// writeLong
|
|
|
|
f = fopen("test.file", "wb")
|
|
|
|
writeLong(f, 1002003004005006007)
|
|
|
|
flush(f)
|
|
|
|
fclose(f)
|
|
|
|
|
|
|
|
// append & writeFloat
|
|
|
|
fpNumber = 100200.3004005006007
|
|
|
|
f = fopen("test.file", "wb+")
|
|
|
|
writeFloat(f, fpNumber)
|
|
|
|
flush(f)
|
|
|
|
fclose(f)
|
|
|
|
|
|
|
|
f = fopen("test.file", "rb")
|
|
|
|
assertEquals(1002003004005006007, readLong(f))
|
|
|
|
assertEquals(float(fpNumber), readFloat(f))
|
|
|
|
assertEquals(-1, readInt(f)) // EOF
|
2016-06-19 12:30:46 +03:00
|
|
|
assertEquals(0, FILES_COMPARATOR(f, f))
|
2016-06-19 11:22:20 +03:00
|
|
|
fclose(f)
|
|
|
|
|
|
|
|
f = fopen("test.file", "i")
|
|
|
|
delete(f)
|
|
|
|
fclose(f)
|
|
|
|
}
|
|
|
|
|
2016-02-19 13:27:54 +02:00
|
|
|
println runTests()
|