micropython/tests/basics/deque_micropython.py

76 wiersze
1.2 KiB
Python

# Test MicroPython-specific features of collections.deque.
try:
from collections import deque
except ImportError:
print("SKIP")
raise SystemExit
# Only fixed-size deques are supported, so length arg is mandatory.
try:
deque(())
except TypeError:
print("TypeError")
# Test third argument: flags when True means check for under/overflow
d = deque((), 2, True)
try:
d.popleft()
except IndexError:
print("IndexError")
try:
d.pop()
except IndexError:
print("IndexError")
# Removing elements with del is not supported, fallback to
# mp_obj_subscr() error message.
try:
del d[0]
except TypeError:
print("TypeError")
print(d.append(1))
print(d.popleft())
d.append(2)
print(d.popleft())
d.append(3)
d.append(4)
print(d.popleft(), d.popleft())
try:
d.popleft()
except IndexError as e:
print(repr(e))
try:
d.pop()
except IndexError as e:
print(repr(e))
d.append(5)
d.append(6)
print(len(d))
try:
d.append(7)
except IndexError as e:
print(repr(e))
try:
d.appendleft(8)
except IndexError as e:
print(repr(e))
print(len(d))
print(d.popleft(), d.popleft())
print(len(d))
try:
d.popleft()
except IndexError as e:
print(repr(e))