MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_re_split

Method test_re_split

Lib/test/test_re.py:401–452  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

399 re.subn('a', 'b', 'aaaaa', 1, 0, 0)
400
401 def test_re_split(self):
402 for string in ":a:b::c", S(":a:b::c"):
403 self.assertTypedEqual(re.split(":", string),
404 ['', 'a', 'b', '', 'c'])
405 self.assertTypedEqual(re.split(":+", string),
406 ['', 'a', 'b', 'c'])
407 self.assertTypedEqual(re.split("(:+)", string),
408 ['', ':', 'a', ':', 'b', '::', 'c'])
409 for string in (b":a:b::c", B(b":a:b::c"), bytearray(b":a:b::c"),
410 memoryview(b":a:b::c")):
411 self.assertTypedEqual(re.split(b":", string),
412 [b'', b'a', b'b', b'', b'c'])
413 self.assertTypedEqual(re.split(b":+", string),
414 [b'', b'a', b'b', b'c'])
415 self.assertTypedEqual(re.split(b"(:+)", string),
416 [b'', b':', b'a', b':', b'b', b'::', b'c'])
417 for a, b, c in ("\xe0\xdf\xe7", "\u0430\u0431\u0432",
418 "\U0001d49c\U0001d49e\U0001d4b5"):
419 string = ":%s:%s::%s" % (a, b, c)
420 self.assertEqual(re.split(":", string), ['', a, b, '', c])
421 self.assertEqual(re.split(":+", string), ['', a, b, c])
422 self.assertEqual(re.split("(:+)", string),
423 ['', ':', a, ':', b, '::', c])
424
425 self.assertEqual(re.split("(?::+)", ":a:b::c"), ['', 'a', 'b', 'c'])
426 self.assertEqual(re.split("(:)+", ":a:b::c"),
427 ['', ':', 'a', ':', 'b', ':', 'c'])
428 self.assertEqual(re.split("([b:]+)", ":a:b::c"),
429 ['', ':', 'a', ':b::', 'c'])
430 self.assertEqual(re.split("(b)|(:+)", ":a:b::c"),
431 ['', None, ':', 'a', None, ':', '', 'b', None, '',
432 None, '::', 'c'])
433 self.assertEqual(re.split("(?:b)|(?::+)", ":a:b::c"),
434 ['', 'a', '', '', 'c'])
435
436 for sep, expected in [
437 (':*', ['', '', 'a', '', 'b', '', 'c', '']),
438 ('(?::*)', ['', '', 'a', '', 'b', '', 'c', '']),
439 ('(:*)', ['', ':', '', '', 'a', ':', '', '', 'b', '::', '', '', 'c', '', '']),
440 ('(:)*', ['', ':', '', None, 'a', ':', '', None, 'b', ':', '', None, 'c', None, '']),
441 ]:
442 with self.subTest(sep=sep):
443 self.assertTypedEqual(re.split(sep, ':a:b::c'), expected)
444
445 for sep, expected in [
446 ('', ['', ':', 'a', ':', 'b', ':', ':', 'c', '']),
447 (r'\b', [':', 'a', ':', 'b', '::', 'c', '']),
448 (r'(?=:)', ['', ':a', ':b', ':', ':c']),
449 (r'(?<=:)', [':', 'a:', 'b:', ':', 'c']),
450 ]:
451 with self.subTest(sep=sep):
452 self.assertTypedEqual(re.split(sep, ':a:b::c'), expected)
453
454 def test_qualified_re_split(self):
455 with self.assertWarns(DeprecationWarning) as w:

Callers

nothing calls this directly

Calls 6

assertTypedEqualMethod · 0.95
subTestMethod · 0.80
SClass · 0.70
BClass · 0.70
splitMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected