forked from M-Labs/artiq
test/py2llvm: add various corner cases
This commit is contained in:
parent
97ad9efa85
commit
7ee86c775d
|
@ -18,14 +18,14 @@ def test_base_types(choice):
|
||||||
d = 4 # stays int32
|
d = 4 # stays int32
|
||||||
x = int64(7)
|
x = int64(7)
|
||||||
a += x # promotes a to int64
|
a += x # promotes a to int64
|
||||||
foo = True
|
foo = True | True
|
||||||
bar = None
|
bar = None
|
||||||
myf = 4.5
|
myf = 4.5
|
||||||
myf2 = myf + x
|
myf2 = myf + x
|
||||||
|
|
||||||
if choice and foo and not bar:
|
if choice and foo and not bar:
|
||||||
return d
|
return d
|
||||||
elif myf:
|
elif myf2:
|
||||||
return x + c
|
return x + c
|
||||||
else:
|
else:
|
||||||
return int64(8)
|
return int64(8)
|
||||||
|
@ -185,6 +185,17 @@ def array_test():
|
||||||
return acc
|
return acc
|
||||||
|
|
||||||
|
|
||||||
|
def corner_cases():
|
||||||
|
two = True + True - False
|
||||||
|
three = two + True//True - False*True
|
||||||
|
two_float = three - True/True
|
||||||
|
one_float = two_float - (1.0 == bool(0.1))
|
||||||
|
zero = int(one_float) + round(-0.6)
|
||||||
|
eleven_float = zero + 5.5//0.5
|
||||||
|
ten_float = eleven_float + round(Fraction(2, -3))
|
||||||
|
return ten_float
|
||||||
|
|
||||||
|
|
||||||
def _test_range():
|
def _test_range():
|
||||||
for i in range(5, 10):
|
for i in range(5, 10):
|
||||||
yield i
|
yield i
|
||||||
|
@ -283,3 +294,7 @@ class CodeGenCase(unittest.TestCase):
|
||||||
def test_array(self):
|
def test_array(self):
|
||||||
array_test_c = CompiledFunction(array_test, dict())
|
array_test_c = CompiledFunction(array_test, dict())
|
||||||
self.assertEqual(array_test_c(), array_test())
|
self.assertEqual(array_test_c(), array_test())
|
||||||
|
|
||||||
|
def test_corner_cases(self):
|
||||||
|
corner_cases_c = CompiledFunction(corner_cases, dict())
|
||||||
|
self.assertEqual(corner_cases_c(), corner_cases())
|
||||||
|
|
Loading…
Reference in New Issue