cython

Форк
0
/
constant_folding_cy.pyx 
117 строк · 2.2 Кб
1
# coding=utf8
2
# mode: run
3
# tag: constant_folding
4

5
cimport cython
6

7

8
bstring = b'abc\xE9def'
9
ustring = u'abc\xE9def'
10
surrogates_ustring = u'abc\U00010000def'
11

12

13
@cython.test_fail_if_path_exists(
14
    "//SliceIndexNode",
15
    )
16
def bytes_slicing2():
17
    """
18
    >>> a,b,c,d = bytes_slicing2()
19
    >>> a == bstring[:]
20
    True
21
    >>> b == bstring[2:]
22
    True
23
    >>> c == bstring[:4]
24
    True
25
    >>> d == bstring[2:4]
26
    True
27
    """
28
    str0 = b'abc\xE9def'[:]
29
    str1 = b'abc\xE9def'[2:]
30
    str2 = b'abc\xE9def'[:4]
31
    str3 = b'abc\xE9def'[2:4]
32

33
    return str0, str1, str2, str3
34

35

36
@cython.test_fail_if_path_exists(
37
    "//SliceIndexNode",
38
    )
39
def unicode_slicing2():
40
    """
41
    >>> a,b,c,d = unicode_slicing2()
42
    >>> a == ustring[:]
43
    True
44
    >>> b == ustring[2:]
45
    True
46
    >>> c == ustring[:4]
47
    True
48
    >>> d == ustring[2:4]
49
    True
50
    """
51
    str0 = u'abc\xE9def'[:]
52
    str1 = u'abc\xE9def'[2:]
53
    str2 = u'abc\xE9def'[:4]
54
    str3 = u'abc\xE9def'[2:4]
55

56
    return str0, str1, str2, str3
57

58

59
@cython.test_fail_if_path_exists(
60
    "//SliceIndexNode",
61
    )
62
def unicode_slicing_unsafe_surrogates2():
63
    """
64
    >>> unicode_slicing_unsafe_surrogates2() == surrogates_ustring[2:]
65
    True
66
    """
67
    ustring = u'abc\U00010000def'[2:]
68
    return ustring
69

70

71
@cython.test_fail_if_path_exists(
72
    "//SliceIndexNode",
73
    )
74
def unicode_slicing_safe_surrogates2():
75
    """
76
    >>> unicode_slicing_safe_surrogates2() == surrogates_ustring[:2]
77
    True
78
    >>> print(unicode_slicing_safe_surrogates2())
79
    ab
80
    """
81
    ustring = u'abc\U00010000def'[:2]
82
    return ustring
83

84

85
@cython.test_fail_if_path_exists(
86
    "//ComprehensionNode",
87
    "//ForInStatNode",
88
)
89
@cython.test_assert_path_exists(
90
    "//SetNode",
91
)
92
def for_in_empty_setcomp():
93
    """
94
    >>> s = for_in_empty_setcomp()
95
    >>> isinstance(s, set)
96
    True
97
    >>> len(s)
98
    0
99
    """
100
    return {i for i in []}
101

102

103
@cython.test_fail_if_path_exists(
104
    "//ReturnStatNode//AddNode",
105
)
106
def add_strings():
107
    """
108
    >>> s, u, b = add_strings()
109
    >>> s == 'abcdef' or s
110
    True
111
    >>> u == 'abcdef' or u
112
    True
113
    >>> b == b'abcdef' or b
114
    True
115
    """
116
    # FIXME: test encodings and unicode escapes
117
    return "abc" + "def", u"abc" + u"def", b"abc" + b"def"
118

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

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

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

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