forked from Rust-related/RustPython
58 lines
884 B
Python
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) |