649
649
self.assertEqual(expected, _py_memrchr(s, c))
651
651
def test_missing(self):
652
self.assertMemRChr(None, '', 'a')
653
self.assertMemRChr(None, '', 'c')
654
self.assertMemRChr(None, 'abcdefghijklm', 'q')
655
self.assertMemRChr(None, 'aaaaaaaaaaaaaaaaaaaaaaa', 'b')
652
self.assertMemRChr(None, b'', b'a')
653
self.assertMemRChr(None, b'', b'c')
654
self.assertMemRChr(None, b'abcdefghijklm', b'q')
655
self.assertMemRChr(None, b'aaaaaaaaaaaaaaaaaaaaaaa', b'b')
657
657
def test_single_entry(self):
658
self.assertMemRChr(0, 'abcdefghijklm', 'a')
659
self.assertMemRChr(1, 'abcdefghijklm', 'b')
660
self.assertMemRChr(2, 'abcdefghijklm', 'c')
661
self.assertMemRChr(10, 'abcdefghijklm', 'k')
662
self.assertMemRChr(11, 'abcdefghijklm', 'l')
663
self.assertMemRChr(12, 'abcdefghijklm', 'm')
658
self.assertMemRChr(0, b'abcdefghijklm', b'a')
659
self.assertMemRChr(1, b'abcdefghijklm', b'b')
660
self.assertMemRChr(2, b'abcdefghijklm', b'c')
661
self.assertMemRChr(10, b'abcdefghijklm', b'k')
662
self.assertMemRChr(11, b'abcdefghijklm', b'l')
663
self.assertMemRChr(12, b'abcdefghijklm', b'm')
665
665
def test_multiple(self):
666
self.assertMemRChr(10, 'abcdefjklmabcdefghijklm', 'a')
667
self.assertMemRChr(11, 'abcdefjklmabcdefghijklm', 'b')
668
self.assertMemRChr(12, 'abcdefjklmabcdefghijklm', 'c')
669
self.assertMemRChr(20, 'abcdefjklmabcdefghijklm', 'k')
670
self.assertMemRChr(21, 'abcdefjklmabcdefghijklm', 'l')
671
self.assertMemRChr(22, 'abcdefjklmabcdefghijklm', 'm')
672
self.assertMemRChr(22, 'aaaaaaaaaaaaaaaaaaaaaaa', 'a')
666
self.assertMemRChr(10, b'abcdefjklmabcdefghijklm', b'a')
667
self.assertMemRChr(11, b'abcdefjklmabcdefghijklm', b'b')
668
self.assertMemRChr(12, b'abcdefjklmabcdefghijklm', b'c')
669
self.assertMemRChr(20, b'abcdefjklmabcdefghijklm', b'k')
670
self.assertMemRChr(21, b'abcdefjklmabcdefghijklm', b'l')
671
self.assertMemRChr(22, b'abcdefjklmabcdefghijklm', b'm')
672
self.assertMemRChr(22, b'aaaaaaaaaaaaaaaaaaaaaaa', b'a')
674
674
def test_with_nulls(self):
675
self.assertMemRChr(10, 'abc\0\0\0jklmabc\0\0\0ghijklm', 'a')
676
self.assertMemRChr(11, 'abc\0\0\0jklmabc\0\0\0ghijklm', 'b')
677
self.assertMemRChr(12, 'abc\0\0\0jklmabc\0\0\0ghijklm', 'c')
678
self.assertMemRChr(20, 'abc\0\0\0jklmabc\0\0\0ghijklm', 'k')
679
self.assertMemRChr(21, 'abc\0\0\0jklmabc\0\0\0ghijklm', 'l')
680
self.assertMemRChr(22, 'abc\0\0\0jklmabc\0\0\0ghijklm', 'm')
681
self.assertMemRChr(22, 'aaa\0\0\0aaaaaaa\0\0\0aaaaaaa', 'a')
682
self.assertMemRChr(9, '\0\0\0\0\0\0\0\0\0\0', '\0')
675
self.assertMemRChr(10, b'abc\0\0\0jklmabc\0\0\0ghijklm', b'a')
676
self.assertMemRChr(11, b'abc\0\0\0jklmabc\0\0\0ghijklm', b'b')
677
self.assertMemRChr(12, b'abc\0\0\0jklmabc\0\0\0ghijklm', b'c')
678
self.assertMemRChr(20, b'abc\0\0\0jklmabc\0\0\0ghijklm', b'k')
679
self.assertMemRChr(21, b'abc\0\0\0jklmabc\0\0\0ghijklm', b'l')
680
self.assertMemRChr(22, b'abc\0\0\0jklmabc\0\0\0ghijklm', b'm')
681
self.assertMemRChr(22, b'aaa\0\0\0aaaaaaa\0\0\0aaaaaaa', b'a')
682
self.assertMemRChr(9, b'\0\0\0\0\0\0\0\0\0\0', b'\0')
685
685
class TestReadDirblocks(test_dirstate.TestCaseWithDirState):