1# test the builtin reverse() function
2try:
3    reversed
4except:
5    print("SKIP")
6    raise SystemExit
7
8# list
9print(list(reversed([])))
10print(list(reversed([1])))
11print(list(reversed([1, 2, 3])))
12
13# tuple
14print(list(reversed(())))
15print(list(reversed((1, 2, 3))))
16
17# string
18for c in reversed('ab'):
19    print(c)
20
21# bytes
22for b in reversed(b'1234'):
23    print(b)
24
25# range
26for i in reversed(range(3)):
27    print(i)
28
29# user object
30class A:
31    def __init__(self):
32        pass
33    def __len__(self):
34        return 3
35    def __getitem__(self, pos):
36        return pos + 1
37for a in reversed(A()):
38    print(a)
39
40# user object with __reversed__
41class B:
42    def __reversed__(self):
43        return [1, 2, 3]
44print(reversed(B()))
45