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

Method test_word_boundaries

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

Source from the content-addressed store, hash-verified

894 # TODO: RUSTPYTHON; re.search(r"\B", "") now returns a match in CPython 3.14
895 @unittest.expectedFailure
896 def test_word_boundaries(self):
897 # See http://bugs.python.org/issue10713
898 self.assertEqual(re.search(r"\b(abc)\b", "abc").group(1), "abc")
899 self.assertEqual(re.search(r"\b(abc)\b", "abc", re.ASCII).group(1), "abc")
900 self.assertEqual(re.search(br"\b(abc)\b", b"abc").group(1), b"abc")
901 self.assertEqual(re.search(br"\b(abc)\b", b"abc", re.LOCALE).group(1), b"abc")
902 self.assertEqual(re.search(r"\b(ьюя)\b", "ьюя").group(1), "ьюя")
903 self.assertIsNone(re.search(r"\b(ьюя)\b", "ьюя", re.ASCII))
904 # There's a word boundary between a word and a non-word.
905 self.assertTrue(re.match(r".\b", "a="))
906 self.assertTrue(re.match(r".\b", "a=", re.ASCII))
907 self.assertTrue(re.match(br".\b", b"a="))
908 self.assertTrue(re.match(br".\b", b"a=", re.LOCALE))
909 self.assertTrue(re.match(r".\b", "я="))
910 self.assertIsNone(re.match(r".\b", "я=", re.ASCII))
911 # There's a word boundary between a non-word and a word.
912 self.assertTrue(re.match(r".\b", "=a"))
913 self.assertTrue(re.match(r".\b", "=a", re.ASCII))
914 self.assertTrue(re.match(br".\b", b"=a"))
915 self.assertTrue(re.match(br".\b", b"=a", re.LOCALE))
916 self.assertTrue(re.match(r".\b", "=я"))
917 self.assertIsNone(re.match(r".\b", "=я", re.ASCII))
918 # There is no word boundary inside a word.
919 self.assertIsNone(re.match(r".\b", "ab"))
920 self.assertIsNone(re.match(r".\b", "ab", re.ASCII))
921 self.assertIsNone(re.match(br".\b", b"ab"))
922 self.assertIsNone(re.match(br".\b", b"ab", re.LOCALE))
923 self.assertIsNone(re.match(r".\b", "юя"))
924 self.assertIsNone(re.match(r".\b", "юя", re.ASCII))
925 # There is no word boundary between a non-word characters.
926 self.assertIsNone(re.match(r".\b", "=-"))
927 self.assertIsNone(re.match(r".\b", "=-", re.ASCII))
928 self.assertIsNone(re.match(br".\b", b"=-"))
929 self.assertIsNone(re.match(br".\b", b"=-", re.LOCALE))
930 # There is no non-boundary match between a word and a non-word.
931 self.assertIsNone(re.match(r".\B", "a="))
932 self.assertIsNone(re.match(r".\B", "a=", re.ASCII))
933 self.assertIsNone(re.match(br".\B", b"a="))
934 self.assertIsNone(re.match(br".\B", b"a=", re.LOCALE))
935 self.assertIsNone(re.match(r".\B", "я="))
936 self.assertTrue(re.match(r".\B", "я=", re.ASCII))
937 # There is no non-boundary match between a non-word and a word.
938 self.assertIsNone(re.match(r".\B", "=a"))
939 self.assertIsNone(re.match(r".\B", "=a", re.ASCII))
940 self.assertIsNone(re.match(br".\B", b"=a"))
941 self.assertIsNone(re.match(br".\B", b"=a", re.LOCALE))
942 self.assertIsNone(re.match(r".\B", "=я"))
943 self.assertTrue(re.match(r".\B", "=я", re.ASCII))
944 # There's a non-boundary match inside a word.
945 self.assertTrue(re.match(r".\B", "ab"))
946 self.assertTrue(re.match(r".\B", "ab", re.ASCII))
947 self.assertTrue(re.match(br".\B", b"ab"))
948 self.assertTrue(re.match(br".\B", b"ab", re.LOCALE))
949 self.assertTrue(re.match(r".\B", "юя"))
950 self.assertTrue(re.match(r".\B", "юя", re.ASCII))
951 # There's a non-boundary match between a non-word characters.
952 self.assertTrue(re.match(r".\B", "=-"))
953 self.assertTrue(re.match(r".\B", "=-", re.ASCII))

Callers

nothing calls this directly

Calls 10

lenFunction · 0.85
assertIsNoneMethod · 0.80
assertTrueMethod · 0.80
fullmatchMethod · 0.80
spanMethod · 0.80
assertEqualMethod · 0.45
groupMethod · 0.45
searchMethod · 0.45
matchMethod · 0.45
findallMethod · 0.45

Tested by

no test coverage detected