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

Method test_slices

Lib/test/test_descr.py:3893–3935  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

3891 self.assertEqual(b.getfoo(), 24)
3892
3893 def test_slices(self):
3894 # Testing cases with slices and overridden __getitem__ ...
3895
3896 # Strings
3897 self.assertEqual("hello"[:4], "hell")
3898 self.assertEqual("hello"[slice(4)], "hell")
3899 self.assertEqual(str.__getitem__("hello", slice(4)), "hell")
3900 class S(str):
3901 def __getitem__(self, x):
3902 return str.__getitem__(self, x)
3903 self.assertEqual(S("hello")[:4], "hell")
3904 self.assertEqual(S("hello")[slice(4)], "hell")
3905 self.assertEqual(S("hello").__getitem__(slice(4)), "hell")
3906 # Tuples
3907 self.assertEqual((1,2,3)[:2], (1,2))
3908 self.assertEqual((1,2,3)[slice(2)], (1,2))
3909 self.assertEqual(tuple.__getitem__((1,2,3), slice(2)), (1,2))
3910 class T(tuple):
3911 def __getitem__(self, x):
3912 return tuple.__getitem__(self, x)
3913 self.assertEqual(T((1,2,3))[:2], (1,2))
3914 self.assertEqual(T((1,2,3))[slice(2)], (1,2))
3915 self.assertEqual(T((1,2,3)).__getitem__(slice(2)), (1,2))
3916 # Lists
3917 self.assertEqual([1,2,3][:2], [1,2])
3918 self.assertEqual([1,2,3][slice(2)], [1,2])
3919 self.assertEqual(list.__getitem__([1,2,3], slice(2)), [1,2])
3920 class L(list):
3921 def __getitem__(self, x):
3922 return list.__getitem__(self, x)
3923 self.assertEqual(L([1,2,3])[:2], [1,2])
3924 self.assertEqual(L([1,2,3])[slice(2)], [1,2])
3925 self.assertEqual(L([1,2,3]).__getitem__(slice(2)), [1,2])
3926 # Now do lists and __setitem__
3927 a = L([1,2,3])
3928 a[slice(1, 3)] = [3,2]
3929 self.assertEqual(a, [1,3,2])
3930 a[slice(0, 2, 1)] = [3,1]
3931 self.assertEqual(a, [3,1,2])
3932 a.__setitem__(slice(1, 3), [2,1])
3933 self.assertEqual(a, [3,2,1])
3934 a.__setitem__(slice(0, 2, 1), [2,3])
3935 self.assertEqual(a, [2,3,1])
3936
3937 def test_subtype_resurrection(self):
3938 # Testing resurrection of new-style instance...

Callers

nothing calls this directly

Calls 7

sliceClass · 0.85
SClass · 0.70
TClass · 0.70
LClass · 0.70
assertEqualMethod · 0.45
__getitem__Method · 0.45
__setitem__Method · 0.45

Tested by

no test coverage detected