1try:
2    bytearray()[:] = bytearray()
3except TypeError:
4    print("SKIP")
5    raise SystemExit
6
7# test slices; only 2 argument version supported by MicroPython at the moment
8x = bytearray(range(10))
9
10# Assignment
11l = bytearray(x)
12l[1:3] = bytearray([10, 20])
13print(l)
14l = bytearray(x)
15l[1:3] = bytearray([10])
16print(l)
17l = bytearray(x)
18l[1:3] = bytearray()
19print(l)
20l = bytearray(x)
21#del l[1:3]
22print(l)
23
24l = bytearray(x)
25l[:3] = bytearray([10, 20])
26print(l)
27l = bytearray(x)
28l[:3] = bytearray()
29print(l)
30l = bytearray(x)
31#del l[:3]
32print(l)
33
34l = bytearray(x)
35l[:-3] = bytearray([10, 20])
36print(l)
37l = bytearray(x)
38l[:-3] = bytearray()
39print(l)
40l = bytearray(x)
41#del l[:-3]
42print(l)
43
44# slice assignment that extends the array
45b = bytearray(2)
46b[2:] = bytearray(10)
47print(b)
48
49b = bytearray(10)
50b[:-1] = bytearray(500)
51print(len(b), b[0], b[-1])
52
53# extension with self on RHS
54b = bytearray(x)
55b[4:] = b
56print(b)
57
58# Assignment of bytes to array slice
59b = bytearray(2)
60b[1:1] = b"12345"
61print(b)
62
63# Growth of bytearray via slice extension
64b = bytearray(b'12345678')
65b.append(57) # expand and add a bit of unused space at end of the bytearray
66for i in range(400):
67    b[-1:] = b'ab' # grow slowly into the unused space
68print(len(b), b)
69