1# test for+range, mostly to check optimisation of this pair
2
3# apply args using *
4for x in range(*(1, 3)):
5    print(x)
6for x in range(1, *(6, 2)):
7    print(x)
8
9# zero step
10try:
11    for x in range(1, 2, 0):
12        pass
13except ValueError:
14    print('ValueError')
15
16# apply args using **
17try:
18    for x in range(**{'end':1}):
19        print(x)
20except TypeError:
21    print('TypeError')
22try:
23    for x in range(0, **{'end':1}):
24        print(x)
25except TypeError:
26    print('TypeError')
27try:
28    for x in range(0, 1, **{'step':1}):
29        print(x)
30except TypeError:
31    print('TypeError')
32
33# keyword args
34try:
35    for x in range(end=1):
36        print(x)
37except TypeError:
38    print('TypeError')
39try:
40    for x in range(0, end=1):
41        print(x)
42except TypeError:
43    print('TypeError')
44try:
45    for x in range(start=0, end=1):
46        print(x)
47except TypeError:
48    print('TypeError')
49try:
50    for x in range(0, 1, step=1):
51        print(x)
52except TypeError:
53    print('TypeError')
54
55# argument is a comprehension
56try:
57    for x in range(0 for i in []):
58        print(x)
59except TypeError:
60    print('TypeError')
61try:
62    for x in range(0, (0 for i in [])):
63        print(x)
64except TypeError:
65    print('TypeError')
66try:
67    for x in range(0, 1, (0 for i in [])):
68        print(x)
69except TypeError:
70    print('TypeError')
71