forked from M-Labs/nac3
78 lines
1.6 KiB
Python
78 lines
1.6 KiB
Python
@extern
|
|
def output_bool(b: bool):
|
|
...
|
|
|
|
@extern
|
|
def output_int32_list(x: list[int32]):
|
|
...
|
|
|
|
@extern
|
|
def output_int32(x: int32):
|
|
...
|
|
|
|
class A:
|
|
a: int32
|
|
b: bool
|
|
def __init__(self, a: int32, b: bool):
|
|
self.a = a
|
|
self.b = b
|
|
|
|
|
|
def test_tuple_eq():
|
|
# 0-len
|
|
output_bool(() == ())
|
|
# 1-len
|
|
output_bool((1,) == ())
|
|
output_bool(() == (1,))
|
|
output_bool((1,) == (1,))
|
|
output_bool((1,) == (2,))
|
|
# # 2-len
|
|
output_bool((1, 2) == ())
|
|
output_bool(() == (1, 2))
|
|
output_bool((1,) == (1, 2))
|
|
output_bool((1, 2) == (1,))
|
|
output_bool((2, 2) == (1, 2))
|
|
output_bool((1, 2) == (2, 2))
|
|
|
|
|
|
def test_tuple_ne():
|
|
# 0-len
|
|
output_bool(() != ())
|
|
# 1-len
|
|
output_bool((1,) != ())
|
|
output_bool(() != (1,))
|
|
output_bool((1,) != (1,))
|
|
output_bool((1,) != (2,))
|
|
# 2-len
|
|
output_bool((1, 2) != ())
|
|
output_bool(() != (1, 2))
|
|
output_bool((1,) != (1, 2))
|
|
output_bool((1, 2) != (1,))
|
|
output_bool((2, 2) != (1, 2))
|
|
output_bool((1, 2) != (2, 2))
|
|
|
|
|
|
def run() -> int32:
|
|
data = [0, 1, 2, 3]
|
|
|
|
t = [(d, d + d) for d in data]
|
|
for i in t:
|
|
tt = (Some(i[1]), i[0])
|
|
tl = ([i[0], i[1] + i[0]], i[1])
|
|
output_int32(tt[0].unwrap())
|
|
output_int32(tt[1])
|
|
output_int32(tl[0][0])
|
|
output_int32(tl[0][1])
|
|
output_int32(tl[1])
|
|
|
|
output_int32(len(()))
|
|
output_int32(len((1,)))
|
|
output_int32(len((1, 2)))
|
|
output_int32(len((1, 2, 3)))
|
|
output_int32(len((1, 2, 3, 4)))
|
|
output_int32(len((1, 2, 3, 4, 5)))
|
|
|
|
test_tuple_eq()
|
|
test_tuple_ne()
|
|
|
|
return 0 |