Skip to content

Commit b1783bc

Browse files
authored
gh-94808: Improve coverage of unicode_find and unicode_rfind (#98648)
1 parent faea6a1 commit b1783bc

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
@@ -261,6 +261,20 @@ def test_find(self):
261261
self.checkequalnofix(9, 'abcdefghiabc', 'find', 'abc', 1)
262262
self.checkequalnofix(-1, 'abcdefghiabc', 'find', 'def', 4)
263263

264+
# test utf-8 non-ascii char
265+
self.checkequal(0, 'тест', 'find', 'т')
266+
self.checkequal(3, 'тест', 'find', 'т', 1)
267+
self.checkequal(-1, 'тест', 'find', 'т', 1, 3)
268+
self.checkequal(-1, 'тест', 'find', 'e') # english `e`
269+
# test utf-8 non-ascii slice
270+
self.checkequal(1, 'тест тест', 'find', 'ес')
271+
self.checkequal(1, 'тест тест', 'find', 'ес', 1)
272+
self.checkequal(1, 'тест тест', 'find', 'ес', 1, 3)
273+
self.checkequal(6, 'тест тест', 'find', 'ес', 2)
274+
self.checkequal(-1, 'тест тест', 'find', 'ес', 6, 7)
275+
self.checkequal(-1, 'тест тест', 'find', 'ес', 7)
276+
self.checkequal(-1, 'тест тест', 'find', 'ec') # english `ec`
277+
264278
self.assertRaises(TypeError, 'hello'.find)
265279
self.assertRaises(TypeError, 'hello'.find, 42)
266280
# test mixed kinds
@@ -291,6 +305,19 @@ def test_rfind(self):
291305
self.checkequalnofix(9, 'abcdefghiabc', 'rfind', 'abc')
292306
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
293307
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
308+
# test utf-8 non-ascii char
309+
self.checkequal(1, 'тест', 'rfind', 'е')
310+
self.checkequal(1, 'тест', 'rfind', 'е', 1)
311+
self.checkequal(-1, 'тест', 'rfind', 'е', 2)
312+
self.checkequal(-1, 'тест', 'rfind', 'e') # english `e`
313+
# test utf-8 non-ascii slice
314+
self.checkequal(6, 'тест тест', 'rfind', 'ес')
315+
self.checkequal(6, 'тест тест', 'rfind', 'ес', 1)
316+
self.checkequal(1, 'тест тест', 'rfind', 'ес', 1, 3)
317+
self.checkequal(6, 'тест тест', 'rfind', 'ес', 2)
318+
self.checkequal(-1, 'тест тест', 'rfind', 'ес', 6, 7)
319+
self.checkequal(-1, 'тест тест', 'rfind', 'ес', 7)
320+
self.checkequal(-1, 'тест тест', 'rfind', 'ec') # english `ec`
294321
# test mixed kinds
295322
self.checkequal(0, 'a' + '\u0102' * 100, 'rfind', 'a')
296323
self.checkequal(0, 'a' + '\U00100304' * 100, 'rfind', 'a')

0 commit comments

Comments
 (0)