1try:
2    try:
3        from ucollections import deque
4    except ImportError:
5        from collections import deque
6except ImportError:
7    print("SKIP")
8    raise SystemExit
9
10
11d = deque((), 2)
12print(len(d))
13print(bool(d))
14
15try:
16    d.popleft()
17except IndexError:
18    print("IndexError")
19
20print(d.append(1))
21print(len(d))
22print(bool(d))
23print(d.popleft())
24print(len(d))
25
26d.append(2)
27print(d.popleft())
28
29d.append(3)
30d.append(4)
31print(len(d))
32print(d.popleft(), d.popleft())
33try:
34    d.popleft()
35except IndexError:
36    print("IndexError")
37
38d.append(5)
39d.append(6)
40d.append(7)
41print(len(d))
42print(d.popleft(), d.popleft())
43print(len(d))
44try:
45    d.popleft()
46except IndexError:
47    print("IndexError")
48
49# Case where get index wraps around when appending to full deque
50d = deque((), 2)
51d.append(1)
52d.append(2)
53d.append(3)
54d.append(4)
55d.append(5)
56print(d.popleft(), d.popleft())
57
58# Negative maxlen is not allowed
59try:
60    deque((), -1)
61except ValueError:
62    print("ValueError")
63
64# Unsupported unary op
65try:
66    ~d
67except TypeError:
68    print("TypeError")
69