cython

Форк
0
/
charptr_comparison_T582.pyx 
155 строк · 3.9 Кб
1
# ticket: t582
2

3
cimport cython
4

5
################################################################################
6
## plain char*
7

8
@cython.test_assert_path_exists('//SingleAssignmentNode')
9
#@cython.test_fail_if_path_exists('//SingleAssignmentNode//CoerceFromPyTypeNode')
10
def charptr_equals_literal(char* s):
11
    """
12
    >>> charptr_equals_literal('abc'.encode('ASCII'))
13
    True
14
    >>> charptr_equals_literal('aabc'.encode('ASCII'))
15
    False
16
    >>> charptr_equals_literal('abcx'.encode('ASCII'))
17
    False
18
    >>> charptr_equals_literal('bcx'.encode('ASCII'))
19
    False
20
    """
21
    cdef bint result = (s == b"abc")
22
    return result
23

24
def charptr_gt_literal(char* s):
25
    """
26
    >>> charptr_gt_literal('abc'.encode('ASCII'))
27
    False
28
    >>> charptr_gt_literal('aabc'.encode('ASCII'))
29
    False
30
    >>> charptr_gt_literal('abcx'.encode('ASCII'))
31
    True
32
    >>> charptr_gt_literal('bcx'.encode('ASCII'))
33
    True
34
    """
35
    cdef bint result = (s > b"abc")
36
    return result
37

38
def charptr_lt_literal(char* s):
39
    """
40
    >>> charptr_lt_literal('abc'.encode('ASCII'))
41
    False
42
    >>> charptr_lt_literal('aabc'.encode('ASCII'))
43
    True
44
    >>> charptr_lt_literal('abcx'.encode('ASCII'))
45
    False
46
    >>> charptr_lt_literal('bcx'.encode('ASCII'))
47
    False
48
    """
49
    cdef bint result = (s < b"abc")
50
    return result
51

52
def charptr_ge_literal(char* s):
53
    """
54
    >>> charptr_ge_literal('abc'.encode('ASCII'))
55
    True
56
    >>> charptr_ge_literal('aabc'.encode('ASCII'))
57
    False
58
    >>> charptr_ge_literal('abcx'.encode('ASCII'))
59
    True
60
    >>> charptr_ge_literal('bcx'.encode('ASCII'))
61
    True
62
    """
63
    cdef bint result = (s >= b"abc")
64
    return result
65

66
def charptr_le_literal(char* s):
67
    """
68
    >>> charptr_le_literal('abc'.encode('ASCII'))
69
    True
70
    >>> charptr_le_literal('aabc'.encode('ASCII'))
71
    True
72
    >>> charptr_le_literal('abcx'.encode('ASCII'))
73
    False
74
    >>> charptr_le_literal('bcx'.encode('ASCII'))
75
    False
76
    """
77
    cdef bint result = (s <= b"abc")
78
    return result
79

80

81
################################################################################
82
## slices
83

84
@cython.test_assert_path_exists('//SingleAssignmentNode')
85
#FIXME: optimise me!
86
#@cython.test_fail_if_path_exists('//SingleAssignmentNode//CoerceFromPyTypeNode')
87
def slice_equals_literal(char* s):
88
    """
89
    >>> slice_equals_literal('abc'.encode('ASCII'))
90
    True
91
    >>> slice_equals_literal('aabc'.encode('ASCII'))
92
    False
93
    >>> slice_equals_literal('abcx'.encode('ASCII'))
94
    True
95
    >>> slice_equals_literal('bcx'.encode('ASCII'))
96
    False
97
    """
98
    cdef bint result = (s[:3] == b"abc")
99
    return result
100

101
def slice_gt_literal(char* s):
102
    """
103
    >>> slice_gt_literal('abc'.encode('ASCII'))
104
    False
105
    >>> slice_gt_literal('aabc'.encode('ASCII'))
106
    False
107
    >>> slice_gt_literal('abcx'.encode('ASCII'))
108
    False
109
    >>> slice_gt_literal('bcx'.encode('ASCII'))
110
    True
111
    """
112
    cdef bint result = (s[:3] > b"abc")
113
    return result
114

115
def slice_lt_literal(char* s):
116
    """
117
    >>> slice_lt_literal('abc'.encode('ASCII'))
118
    False
119
    >>> slice_lt_literal('aabc'.encode('ASCII'))
120
    True
121
    >>> slice_lt_literal('abcx'.encode('ASCII'))
122
    False
123
    >>> slice_lt_literal('bcx'.encode('ASCII'))
124
    False
125
    """
126
    cdef bint result = (s[:3] < b"abc")
127
    return result
128

129
def slice_ge_literal(char* s):
130
    """
131
    >>> slice_ge_literal('abc'.encode('ASCII'))
132
    True
133
    >>> slice_ge_literal('aabc'.encode('ASCII'))
134
    False
135
    >>> slice_ge_literal('abcx'.encode('ASCII'))
136
    True
137
    >>> slice_ge_literal('bcx'.encode('ASCII'))
138
    True
139
    """
140
    cdef bint result = (s[:3] >= b"abc")
141
    return result
142

143
def slice_le_literal(char* s):
144
    """
145
    >>> slice_le_literal('abc'.encode('ASCII'))
146
    True
147
    >>> slice_le_literal('aabc'.encode('ASCII'))
148
    True
149
    >>> slice_le_literal('abcx'.encode('ASCII'))
150
    True
151
    >>> slice_le_literal('bcx'.encode('ASCII'))
152
    False
153
    """
154
    cdef bint result = (s[:3] <= b"abc")
155
    return result
156

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

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

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

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