pikapython/test/python/UnitTest.py

97 lines
1.7 KiB
Python

import PikaStdLib
import PikaStdData
def EXPECT_EQ(test_name, input, expected):
print('-----TEST-----')
print(test_name)
if input != expected:
print('[Error]')
print(test_name)
print('[info] Expected:')
print(expected)
print('[info] Input:')
print(input)
# error
while True:
is_error = 1
else:
print('[ OK ]')
mem = PikaStdLib.MemChecker()
mem.resetMax()
a = 0
for i in range(0, 10):
if i == 5:
continue
a = a + i
EXPECT_EQ('for_if_continue', a, 40)
a = 0
for i in range(0, 10):
if i == 5:
break
a = a + i
EXPECT_EQ('for_if_break', a, 10)
a = 0
for i in range(0, 10):
for k in range(0, 3):
# print(k)
a = a + k
EXPECT_EQ('for_for_in_range', a, 30)
a = 0
for i in range(0, 10):
# print(i)
a = a + i
EXPECT_EQ('for_in_range', a, 45)
list = PikaStdData.List()
list.append(7)
list.append('eee')
len = list.len()
for item in list:
# print(item)
a = item
EXPECT_EQ('list_for_loop', a, 'eee')
list = PikaStdData.List()
list.append(7)
list.append('eee')
len = list.len()
a1 = list.get(0)
a2 = list.get(1)
res = iter(list)
EXPECT_EQ('iter', res, list)
dict = PikaStdData.Dict()
dict.set('a', 1)
dict.set('b', 2)
dict.remove('b')
a = dict.get('a')
EXPECT_EQ('PikaStdData', a, 1)
num = 0
i = 2
for i in range(2,30):
j=2
is_prime = 1
for j in range(2,i):
if i%j==0 :
is_prime = 0
break
if is_prime:
num = num + i
EXPECT_EQ('prime_number_30', num, 129)
print('====================')
print('[Unit Tests Succeed]')
print('====================')
print('mem used max:')
mem.max()
exit()