diff options
Diffstat (limited to 'tests/basics/deque2.py')
| -rw-r--r-- | tests/basics/deque2.py | 64 |
1 files changed, 56 insertions, 8 deletions
diff --git a/tests/basics/deque2.py b/tests/basics/deque2.py index 80fcd6678..743c04078 100644 --- a/tests/basics/deque2.py +++ b/tests/basics/deque2.py @@ -6,18 +6,50 @@ except ImportError: print("SKIP") raise SystemExit +# Initial sequence is supported +d = deque([1, 2, 3], 10) + +# iteration over sequence +for x in d: + print(x) + +# Iterables larger than maxlen have the beginnings removed, also tests +# iteration through conversion to list +d = deque([1, 2, 3, 4, 5], 3) +print(list(d)) + +# Empty iterables are also supported +deque([], 10) + +# Extending deques with iterables +d.extend([6, 7]) +print(list(d)) + +# Accessing queue elements via index +d = deque((0, 1, 2, 3), 5) +print(d[0], d[1], d[-1]) + +# Writing queue elements via index +d[3] = 5 +print(d[3]) + +# Accessing indices out of bounds raises IndexError +try: + d[4] +except IndexError: + print("IndexError") -# Initial sequence is not supported try: - deque([1, 2, 3], 10) -except ValueError: - print("ValueError") + d[4] = 0 +except IndexError: + print("IndexError") -# Not even empty list, only empty tuple +# Removing elements with del is not supported, fall back on mp_obj_subscr() error message try: - deque([], 10) -except ValueError: - print("ValueError") + del d[0] +except TypeError: + print("TypeError") + # Only fixed-size deques are supported, so length arg is mandatory try: @@ -32,6 +64,11 @@ try: except IndexError: print("IndexError") +try: + d.pop() +except IndexError: + print("IndexError") + print(d.append(1)) print(d.popleft()) @@ -46,6 +83,11 @@ try: 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)) @@ -53,6 +95,12 @@ 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()) |
