cython

Форк
0
/
builtin_next.pyx 
93 строки · 1.8 Кб
1

2
__doc__ = """
3
>>> it = iter([1,2,3])
4
>>> next(it)
5
1
6
>>> next(it)
7
2
8
>>> next(it)
9
3
10

11
>>> next(it)
12
Traceback (most recent call last):
13
StopIteration
14

15
>>> next(it)
16
Traceback (most recent call last):
17
StopIteration
18

19
>>> next(it, 123)
20
123
21

22
>>> next(123)      # doctest: +ELLIPSIS
23
Traceback (most recent call last):
24
TypeError: ...int... object is not an iterator
25
"""
26

27
def test_next_not_iterable(it):
28
    """
29
    >>> test_next_not_iterable(123)
30
    Traceback (most recent call last):
31
    TypeError: int object is not an iterator
32
    """
33
    return next(it)
34

35
def test_single_next(it):
36
    """
37
    >>> it = iter([1,2,3])
38
    >>> test_single_next(it)  # 1
39
    1
40
    >>> test_single_next(it)  # 2
41
    2
42
    >>> test_single_next(it)  # 3
43
    3
44
    >>> test_single_next(it)  # 4
45
    Traceback (most recent call last):
46
    StopIteration
47
    >>> test_single_next(it)
48
    Traceback (most recent call last):
49
    StopIteration
50

51
    >>> class It:
52
    ...     def __init__(self, value):
53
    ...         self.value = value
54
    ...     def __next__(self):
55
    ...         raise StopIteration(self.value)
56

57
    # Assert that the StopIteration value doesn't get lost.
58
    >>> test_single_next(It(42))
59
    Traceback (most recent call last):
60
    StopIteration: 42
61
    """
62
    return next(it)
63

64
def test_default_next(it, default):
65
    """
66
    >>> it = iter([1,2,3])
67
    >>> test_default_next(it, 99)  # 1
68
    1
69
    >>> test_default_next(it, 99)  # 2
70
    2
71
    >>> test_default_next(it, 99)  # 3
72
    3
73
    >>> test_default_next(it, 99)  # 4
74
    99
75
    >>> test_default_next(it, 99)  # 5
76
    99
77
    """
78
    return next(it, default)
79

80
def test_next_override(it):
81
    """
82
    >>> it = iter([1,2,3])
83
    >>> test_next_override(it)  # 1
84
    1
85
    >>> test_next_override(it)  # 2
86
    1
87
    >>> test_next_override(it)  # 3
88
    1
89
    >>> test_next_override(it)  # 4
90
    1
91
    """
92
    def next(it):
93
        return 1
94
    return next(it)
95

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.