(self)
| 214 | # CRASHES get_item(NULL, 0) |
| 215 | |
| 216 | def test_tuple_getslice(self): |
| 217 | # Test PyTuple_GetSlice() |
| 218 | getslice = _testlimitedcapi.tuple_getslice |
| 219 | |
| 220 | # empty |
| 221 | tup = ([1], [2], [3]) |
| 222 | self.assertEqual(getslice(tup, PY_SSIZE_T_MIN, 0), ()) |
| 223 | self.assertEqual(getslice(tup, -1, 0), ()) |
| 224 | self.assertEqual(getslice(tup, 3, PY_SSIZE_T_MAX), ()) |
| 225 | self.assertEqual(getslice(tup, 1, 1), ()) |
| 226 | self.assertEqual(getslice(tup, 2, 1), ()) |
| 227 | tup = TupleSubclass(([1], [2], [3])) |
| 228 | self.assertEqual(getslice(tup, PY_SSIZE_T_MIN, 0), ()) |
| 229 | self.assertEqual(getslice(tup, -1, 0), ()) |
| 230 | self.assertEqual(getslice(tup, 3, PY_SSIZE_T_MAX), ()) |
| 231 | self.assertEqual(getslice(tup, 1, 1), ()) |
| 232 | self.assertEqual(getslice(tup, 2, 1), ()) |
| 233 | |
| 234 | # slice |
| 235 | tup = ([1], [2], [3], [4]) |
| 236 | self.assertEqual(getslice(tup, 1, 3), ([2], [3])) |
| 237 | tup = TupleSubclass(([1], [2], [3], [4])) |
| 238 | self.assertEqual(getslice(tup, 1, 3), ([2], [3])) |
| 239 | |
| 240 | # whole |
| 241 | tup = ([1], [2], [3]) |
| 242 | self.assertEqual(getslice(tup, 0, 3), tup) |
| 243 | self.assertEqual(getslice(tup, 0, 100), tup) |
| 244 | self.assertEqual(getslice(tup, -100, 100), tup) |
| 245 | tup = TupleSubclass(([1], [2], [3])) |
| 246 | self.assertEqual(getslice(tup, 0, 3), tup) |
| 247 | self.assertEqual(getslice(tup, 0, 100), tup) |
| 248 | self.assertEqual(getslice(tup, -100, 100), tup) |
| 249 | |
| 250 | self.assertRaises(SystemError, getslice, [[1], [2], [3]], 0, 0) |
| 251 | self.assertRaises(SystemError, getslice, 42, 0, 0) |
| 252 | |
| 253 | # CRASHES getslice(NULL, 0, 0) |
| 254 | |
| 255 | def test_tuple_setitem(self): |
| 256 | # Test PyTuple_SetItem() |
nothing calls this directly
no test coverage detected