Files
RustPython/extra_tests/snippets/deque.py
Myunghoon Park e4953efac1 add __new__ method to deque iterator and reverse iterator (#2987)
* add __new__ method to deque iterator and reverse iterator
2021-08-29 17:13:19 +03:00

86 lines
2.1 KiB
Python

from collections 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(2000)):
for i in range(len(s)):
d = klass(deque(s), i)
assert (list(d) == list(s)[i:])
# negative index
for s in ('abcd', range(2000)):
for i in range(-1000, 0):
d = klass(deque(s), i)
assert (list(d) == list(s))
# index ge len
for s in ('abcd', range(2000)):
for i in range(len(s), 4000):
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(2000)):
for i in range(-1000, 4000):
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(2000)):
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(2000)):
for i in range(-1000, 0):
d = klass(deque(s), i)
assert (list(d) == list(reversed(s)))
# index ge len
for s in ('abcd', range(2000)):
for i in range(len(s), 4000):
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(2000)):
for i in range(-1000, 4000):
d = klass(deque(s), index=i)
assert (list(d) == list(reversed(s)))
test_deque_reverse_iterator__new__not_using_keyword_index()