5
bytes_abc_null = b'a\0b\0c'
6
bytes_ABC_null = b'A\0B\0C'
10
unicode_abc_null = u'a\0b\0c'
11
unicode_ABC_null = u'A\0B\0C'
14
def for_in_bytes(bytes s):
16
>>> for_in_bytes(bytes_abc)
18
>>> for_in_bytes(bytes_ABC)
20
>>> for_in_bytes(bytes_abc_null)
22
>>> for_in_bytes(bytes_ABC_null)
27
if c == b'C' or c == c'C':
32
@cython.test_assert_path_exists("//ForFromStatNode")
33
@cython.test_fail_if_path_exists("//ForInStatNode")
34
def for_char_in_bytes(bytes s):
36
>>> for_char_in_bytes(bytes_abc)
38
>>> for_char_in_bytes(bytes_ABC)
40
>>> for_char_in_bytes(bytes_abc_null)
42
>>> for_char_in_bytes(bytes_ABC_null)
52
#### Py2 and Py3 behave differently here: Py2->bytes, Py3->integer
54
## @cython.test_assert_path_exists("//ForFromStatNode")
55
## @cython.test_fail_if_path_exists("//ForInStatNode")
56
## def for_obj_in_bytes_slice(bytes s):
58
## >>> for_obj_in_bytes_slice(bytes_abc)
60
## >>> for_obj_in_bytes_slice(bytes_ABC)
62
## >>> for_obj_in_bytes_slice(bytes_abc_null)
64
## >>> for_obj_in_bytes_slice(bytes_ABC_null)
73
@cython.test_assert_path_exists("//ForFromStatNode")
74
@cython.test_fail_if_path_exists("//ForInStatNode")
75
def for_char_in_bytes_slice(bytes s):
77
>>> for_char_in_bytes_slice(bytes_abc)
79
>>> for_char_in_bytes_slice(bytes_ABC)
81
>>> for_char_in_bytes_slice(bytes_abc_null)
83
>>> for_char_in_bytes_slice(bytes_ABC_null)
93
@cython.test_assert_path_exists("//ForFromStatNode")
94
@cython.test_fail_if_path_exists("//ForInStatNode")
95
def for_char_in_enumerate_bytes(bytes s):
97
>>> for_char_in_enumerate_bytes(bytes_abc)
99
>>> for_char_in_enumerate_bytes(bytes_ABC)
101
>>> for_char_in_enumerate_bytes(bytes_abc_null)
103
>>> for_char_in_enumerate_bytes(bytes_ABC_null)
108
for i, c in enumerate(s):
114
#### Py2 and Py3 behave differently here: Py2->bytes, Py3->integer
116
## @cython.test_assert_path_exists("//ForFromStatNode")
117
## @cython.test_fail_if_path_exists("//ForInStatNode")
118
## def for_pyvar_in_char_ptr(char* c_string):
120
## >>> for_pyvar_in_char_ptr( (bytes_abc+bytes_ABC) * 2 )
121
## [True, True, True, False, False, False, True, True, True, False]
122
## >>> for_pyvar_in_char_ptr( bytes_abc_null * 2 )
123
## [True, False, True, False, True, True, False, True, False, True]
127
## for c in c_string[:10]:
128
## in_test.append( c in b'abc' )
131
@cython.test_assert_path_exists("//ForFromStatNode")
132
@cython.test_fail_if_path_exists("//ForInStatNode")
133
def for_char_in_char_ptr(char* c_string):
135
>>> for_char_in_char_ptr( (bytes_abc+bytes_ABC) * 2 )
136
[True, True, True, False, False, False, True, True, True, False]
137
>>> for_char_in_char_ptr( bytes_abc_null * 2 )
138
[True, False, True, False, True, True, False, True, False, True]
142
for c in c_string[:10]:
143
in_test.append( c in b'abc' )
146
@cython.test_assert_path_exists("//ForFromStatNode")
147
@cython.test_fail_if_path_exists("//ForInStatNode")
148
def for_pyunicode_in_unicode(unicode s):
150
>>> for_pyunicode_in_unicode(unicode_abc)
152
>>> for_pyunicode_in_unicode(unicode_ABC)
154
>>> for_pyunicode_in_unicode(unicode_abc_null)
156
>>> for_pyunicode_in_unicode(unicode_ABC_null)
166
@cython.test_assert_path_exists("//ForFromStatNode")
167
@cython.test_fail_if_path_exists("//ForInStatNode")
168
def for_pyunicode_in_enumerate_unicode(unicode s):
170
>>> for_pyunicode_in_enumerate_unicode(unicode_abc)
172
>>> for_pyunicode_in_enumerate_unicode(unicode_ABC)
174
>>> for_pyunicode_in_enumerate_unicode(unicode_abc_null)
176
>>> for_pyunicode_in_enumerate_unicode(unicode_ABC_null)
181
for i, c in enumerate(s):
187
@cython.test_assert_path_exists("//ForFromStatNode")
188
@cython.test_fail_if_path_exists("//ForInStatNode")
189
def for_pyucs4_in_unicode(unicode s):
191
>>> for_pyucs4_in_unicode(unicode_abc)
193
>>> for_pyucs4_in_unicode(unicode_ABC)
195
>>> for_pyucs4_in_unicode(unicode_abc_null)
197
>>> for_pyucs4_in_unicode(unicode_ABC_null)
207
@cython.test_assert_path_exists("//ForFromStatNode")
208
@cython.test_fail_if_path_exists("//ForInStatNode")
209
def for_pyucs4_in_enumerate_unicode(unicode s):
211
>>> for_pyucs4_in_enumerate_unicode(unicode_abc)
213
>>> for_pyucs4_in_enumerate_unicode(unicode_ABC)
215
>>> for_pyucs4_in_enumerate_unicode(unicode_abc_null)
217
>>> for_pyucs4_in_enumerate_unicode(unicode_ABC_null)
222
for i, c in enumerate(s):