Files
RustPython/extra_tests/snippets/stdlib_collections_deque.py
2023-04-20 17:33:36 +09:00

99 lines
2.4 KiB
Python

from testutils import assert_raises
from collections import deque
from typing import Deque
def test_deque_iterator__new__():
klass = type(iter(deque()))
s = 'abcd'
d = klass(deque(s))
assert (list(d) == list(s))
test_deque_iterator__new__()
def test_deque_iterator__new__positional_index():
klass = type(iter(deque()))
# index between 0 and len
for s in ('abcd', range(200)):
for i in range(len(s)):
d = klass(deque(s), i)
assert (list(d) == list(s)[i:])
# negative index
for s in ('abcd', range(200)):
for i in range(-100, 0):
d = klass(deque(s), i)
assert (list(d) == list(s))
# index ge len
for s in ('abcd', range(200)):
for i in range(len(s), 400):
d = klass(deque(s), i)
assert (list(d) == list())
test_deque_iterator__new__positional_index()
def test_deque_iterator__new__not_using_keyword_index():
klass = type(iter(deque()))
for s in ('abcd', range(200)):
for i in range(-100, 400):
d = klass(deque(s), index=i)
assert (list(d) == list(s))
test_deque_iterator__new__not_using_keyword_index()
def test_deque_reverse_iterator__new__positional_index():
klass = type(reversed(deque()))
# index between 0 and len
for s in ('abcd', range(200)):
for i in range(len(s)):
d = klass(deque(s), i)
assert (list(d) == list(reversed(s))[i:])
# negative index
for s in ('abcd', range(200)):
for i in range(-100, 0):
d = klass(deque(s), i)
assert (list(d) == list(reversed(s)))
# index ge len
for s in ('abcd', range(200)):
for i in range(len(s), 400):
d = klass(deque(s), i)
assert (list(d) == list())
test_deque_reverse_iterator__new__positional_index()
def test_deque_reverse_iterator__new__not_using_keyword_index():
klass = type(reversed(deque()))
for s in ('abcd', range(200)):
for i in range(-100, 400):
d = klass(deque(s), index=i)
assert (list(d) == list(reversed(s)))
test_deque_reverse_iterator__new__not_using_keyword_index()
assert repr(deque()) == "deque([])"
assert repr(deque([1, 2, 3])) == "deque([1, 2, 3])"
class D(deque):
pass
assert repr(D()) == "D([])"
assert repr(D([1, 2, 3])) == "D([1, 2, 3])"
assert_raises(ValueError, lambda: deque().index(10,0,10000000000000000000000000))