Files
RustPython/extra_tests/snippets/stdlib_collections_deque.py
T
Rex Ledesma 4e2e0b41c6 chore: add ruff format --check (#5774)
* chore: add `ruff format --check`

* fix tests
2025-05-12 14:20:01 +09:00

102 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))