Files
RustPython/extra_tests/snippets/stdlib_collections.py
2021-08-22 16:57:05 +03:00

58 lines
884 B
Python

from collections import deque
d = deque([0, 1, 2])
d.append(1)
d.appendleft(3)
assert d == deque([3, 0, 1, 2, 1])
assert d <= deque([4])
assert d.copy() is not d
d = deque([1, 2, 3], 5)
d.extend([4, 5, 6])
assert d == deque([2, 3, 4, 5, 6]), d
d.remove(4)
assert d == deque([2, 3, 5, 6])
d.clear()
assert d == deque()
assert d == deque([], 4)
assert deque([1, 2, 3]) * 2 == deque([1, 2, 3, 1, 2, 3])
assert deque([1, 2, 3], 4) * 2 == deque([3, 1, 2, 3])
assert deque(maxlen=3) == deque()
assert deque([1, 2, 3, 4], maxlen=2) == deque([3, 4])
assert len(deque([1, 2, 3, 4])) == 4
assert d >= d
assert not (d > d)
assert d <= d
assert not (d < d)
assert d == d
assert not (d != d)
# Test that calling an evil __repr__ can't hang deque
class BadRepr:
def __repr__(self):
self.d.pop()
return ''
b = BadRepr()
d = deque([1, b, 2])
b.d = d
repr(d)