Skip to content

Commit cb323a8

Browse files
gh-94808: Improve coverage of unicode_find and unicode_rfind (GH-98648)
(cherry picked from commit b1783bc) Co-authored-by: Nikita Sobolev <[email protected]>
1 parent 3e335f2 commit cb323a8

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Lib/test/test_unicode.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,20 @@ def test_find(self):
221221
self.checkequalnofix(9, 'abcdefghiabc', 'find', 'abc', 1)
222222
self.checkequalnofix(-1, 'abcdefghiabc', 'find', 'def', 4)
223223

224+
# test utf-8 non-ascii char
225+
self.checkequal(0, 'тест', 'find', 'т')
226+
self.checkequal(3, 'тест', 'find', 'т', 1)
227+
self.checkequal(-1, 'тест', 'find', 'т', 1, 3)
228+
self.checkequal(-1, 'тест', 'find', 'e') # english `e`
229+
# test utf-8 non-ascii slice
230+
self.checkequal(1, 'тест тест', 'find', 'ес')
231+
self.checkequal(1, 'тест тест', 'find', 'ес', 1)
232+
self.checkequal(1, 'тест тест', 'find', 'ес', 1, 3)
233+
self.checkequal(6, 'тест тест', 'find', 'ес', 2)
234+
self.checkequal(-1, 'тест тест', 'find', 'ес', 6, 7)
235+
self.checkequal(-1, 'тест тест', 'find', 'ес', 7)
236+
self.checkequal(-1, 'тест тест', 'find', 'ec') # english `ec`
237+
224238
self.assertRaises(TypeError, 'hello'.find)
225239
self.assertRaises(TypeError, 'hello'.find, 42)
226240
# test mixed kinds
@@ -251,6 +265,19 @@ def test_rfind(self):
251265
self.checkequalnofix(9, 'abcdefghiabc', 'rfind', 'abc')
252266
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
253267
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
268+
# test utf-8 non-ascii char
269+
self.checkequal(1, 'тест', 'rfind', 'е')
270+
self.checkequal(1, 'тест', 'rfind', 'е', 1)
271+
self.checkequal(-1, 'тест', 'rfind', 'е', 2)
272+
self.checkequal(-1, 'тест', 'rfind', 'e') # english `e`
273+
# test utf-8 non-ascii slice
274+
self.checkequal(6, 'тест тест', 'rfind', 'ес')
275+
self.checkequal(6, 'тест тест', 'rfind', 'ес', 1)
276+
self.checkequal(1, 'тест тест', 'rfind', 'ес', 1, 3)
277+
self.checkequal(6, 'тест тест', 'rfind', 'ес', 2)
278+
self.checkequal(-1, 'тест тест', 'rfind', 'ес', 6, 7)
279+
self.checkequal(-1, 'тест тест', 'rfind', 'ес', 7)
280+
self.checkequal(-1, 'тест тест', 'rfind', 'ec') # english `ec`
254281
# test mixed kinds
255282
self.checkequal(0, 'a' + '\u0102' * 100, 'rfind', 'a')
256283
self.checkequal(0, 'a' + '\U00100304' * 100, 'rfind', 'a')

0 commit comments

Comments
 (0)