mirror of https://github.com/exaloop/codon.git
59 lines
1.0 KiB
Python
59 lines
1.0 KiB
Python
@extend
|
|
class range:
|
|
def __iter__(self):
|
|
yield 999
|
|
|
|
@test
|
|
def test_for_lowering():
|
|
from random import randint
|
|
x = 10
|
|
v = []
|
|
for i in range(x):
|
|
v.append(i)
|
|
assert v == [0,1,2,3,4,5,6,7,8,9]
|
|
|
|
v = []
|
|
for i in range(x - 11, x//10):
|
|
v.append(i)
|
|
assert v == [-1, 0]
|
|
|
|
v = []
|
|
for i in range(x, -x):
|
|
v.append(i)
|
|
assert v == []
|
|
|
|
v = []
|
|
for i in range(x//3, -x//3, -2):
|
|
v.append(i)
|
|
assert v == [3, 1, -1]
|
|
|
|
v = []
|
|
for i in range(-1, 7, 3):
|
|
v.append(i)
|
|
assert v == [-1, 2, 5]
|
|
|
|
v = []
|
|
for i in range(0, 1, randint(1,1)): # no lowering for non-const step
|
|
v.append(i)
|
|
assert v == [999]
|
|
|
|
v = []
|
|
try:
|
|
for i in range(0, 1, 0): # no lowering for zero step
|
|
v.append(i)
|
|
v.append(-1)
|
|
except:
|
|
v.append(-2)
|
|
assert v == [-2]
|
|
|
|
v = []
|
|
for i in range(5):
|
|
if i == 1:
|
|
continue
|
|
if i == 3:
|
|
break
|
|
v.append(i)
|
|
assert v == [0, 2]
|
|
|
|
test_for_lowering()
|