1try:
2    import uarray as array
3except ImportError:
4    try:
5        import array
6    except ImportError:
7        print("SKIP")
8        raise SystemExit
9
10a = array.array('B', [1, 2, 3])
11print(a, len(a))
12i = array.array('I', [1, 2, 3])
13print(i, len(i))
14print(a[0])
15print(i[-1])
16a = array.array('l', [-1])
17print(len(a), a[0])
18a1 = array.array('l', [1, 2, 3])
19a2 = array.array('L', [1, 2, 3])
20print(a2[1])
21print(a1 == a2)
22
23# Empty arrays
24print(len(array.array('h')))
25print(array.array('i'))
26
27# bool operator acting on arrays
28print(bool(array.array('i')))
29print(bool(array.array('i', [1])))
30
31# containment, with incorrect type
32print('12' in array.array('B', b'12'))
33print([] in array.array('B', b'12'))
34
35# bad typecode
36try:
37    array.array('X')
38except ValueError:
39    print("ValueError")
40
41# equality (CPython requires both sides are array)
42print(bytes(array.array('b', [0x61, 0x62, 0x63])) == b'abc')
43print(array.array('b', [0x61, 0x62, 0x63]) == b'abc')
44print(array.array('b', [0x61, 0x62, 0x63]) != b'abc')
45print(array.array('b', [0x61, 0x62, 0x63]) == b'xyz')
46print(array.array('b', [0x61, 0x62, 0x63]) != b'xyz')
47print(b'abc' == array.array('b', [0x61, 0x62, 0x63]))
48print(b'abc' != array.array('b', [0x61, 0x62, 0x63]))
49print(b'xyz' == array.array('b', [0x61, 0x62, 0x63]))
50print(b'xyz' != array.array('b', [0x61, 0x62, 0x63]))
51
52class X(array.array):
53    pass
54
55print(bytes(X('b', [0x61, 0x62, 0x63])) == b'abc')
56print(X('b', [0x61, 0x62, 0x63]) == b'abc')
57print(X('b', [0x61, 0x62, 0x63]) != b'abc')
58print(X('b', [0x61, 0x62, 0x63]) == array.array('b', [0x61, 0x62, 0x63]))
59print(X('b', [0x61, 0x62, 0x63]) != array.array('b', [0x61, 0x62, 0x63]))
60