Skip to content

Commit 18b788c

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 fa95b69 commit 18b788c

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
@@ -257,6 +257,20 @@ def test_find(self):
257257
self.checkequalnofix(9, 'abcdefghiabc', 'find', 'abc', 1)
258258
self.checkequalnofix(-1, 'abcdefghiabc', 'find', 'def', 4)
259259

260+
# test utf-8 non-ascii char
261+
self.checkequal(0, 'тест', 'find', 'т')
262+
self.checkequal(3, 'тест', 'find', 'т', 1)
263+
self.checkequal(-1, 'тест', 'find', 'т', 1, 3)
264+
self.checkequal(-1, 'тест', 'find', 'e') # english `e`
265+
# test utf-8 non-ascii slice
266+
self.checkequal(1, 'тест тест', 'find', 'ес')
267+
self.checkequal(1, 'тест тест', 'find', 'ес', 1)
268+
self.checkequal(1, 'тест тест', 'find', 'ес', 1, 3)
269+
self.checkequal(6, 'тест тест', 'find', 'ес', 2)
270+
self.checkequal(-1, 'тест тест', 'find', 'ес', 6, 7)
271+
self.checkequal(-1, 'тест тест', 'find', 'ес', 7)
272+
self.checkequal(-1, 'тест тест', 'find', 'ec') # english `ec`
273+
260274
self.assertRaises(TypeError, 'hello'.find)
261275
self.assertRaises(TypeError, 'hello'.find, 42)
262276
# test mixed kinds
@@ -287,6 +301,19 @@ def test_rfind(self):
287301
self.checkequalnofix(9, 'abcdefghiabc', 'rfind', 'abc')
288302
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
289303
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
304+
# test utf-8 non-ascii char
305+
self.checkequal(1, 'тест', 'rfind', 'е')
306+
self.checkequal(1, 'тест', 'rfind', 'е', 1)
307+
self.checkequal(-1, 'тест', 'rfind', 'е', 2)
308+
self.checkequal(-1, 'тест', 'rfind', 'e') # english `e`
309+
# test utf-8 non-ascii slice
310+
self.checkequal(6, 'тест тест', 'rfind', 'ес')
311+
self.checkequal(6, 'тест тест', 'rfind', 'ес', 1)
312+
self.checkequal(1, 'тест тест', 'rfind', 'ес', 1, 3)
313+
self.checkequal(6, 'тест тест', 'rfind', 'ес', 2)
314+
self.checkequal(-1, 'тест тест', 'rfind', 'ес', 6, 7)
315+
self.checkequal(-1, 'тест тест', 'rfind', 'ес', 7)
316+
self.checkequal(-1, 'тест тест', 'rfind', 'ec') # english `ec`
290317
# test mixed kinds
291318
self.checkequal(0, 'a' + '\u0102' * 100, 'rfind', 'a')
292319
self.checkequal(0, 'a' + '\U00100304' * 100, 'rfind', 'a')

0 commit comments

Comments
 (0)