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

Method test_islice

Lib/test/test_itertools.py:1119–1196  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1117
1118 @unittest.expectedFailure # TODO: RUSTPYTHON
1119 def test_islice(self):
1120 for args in [ # islice(args) should agree with range(args)
1121 (10, 20, 3),
1122 (10, 3, 20),
1123 (10, 20),
1124 (10, 10),
1125 (10, 3),
1126 (20,)
1127 ]:
1128 self.assertEqual(list(islice(range(100), *args)),
1129 list(range(*args)))
1130
1131 for args, tgtargs in [ # Stop when seqn is exhausted
1132 ((10, 110, 3), ((10, 100, 3))),
1133 ((10, 110), ((10, 100))),
1134 ((110,), (100,))
1135 ]:
1136 self.assertEqual(list(islice(range(100), *args)),
1137 list(range(*tgtargs)))
1138
1139 # Test stop=None
1140 self.assertEqual(list(islice(range(10), None)), list(range(10)))
1141 self.assertEqual(list(islice(range(10), None, None)), list(range(10)))
1142 self.assertEqual(list(islice(range(10), None, None, None)), list(range(10)))
1143 self.assertEqual(list(islice(range(10), 2, None)), list(range(2, 10)))
1144 self.assertEqual(list(islice(range(10), 1, None, 2)), list(range(1, 10, 2)))
1145
1146 # Test number of items consumed SF #1171417
1147 it = iter(range(10))
1148 self.assertEqual(list(islice(it, 3)), list(range(3)))
1149 self.assertEqual(list(it), list(range(3, 10)))
1150
1151 it = iter(range(10))
1152 self.assertEqual(list(islice(it, 3, 3)), [])
1153 self.assertEqual(list(it), list(range(3, 10)))
1154
1155 # Test invalid arguments
1156 ra = range(10)
1157 self.assertRaises(TypeError, islice, ra)
1158 self.assertRaises(TypeError, islice, ra, 1, 2, 3, 4)
1159 self.assertRaises(ValueError, islice, ra, -5, 10, 1)
1160 self.assertRaises(ValueError, islice, ra, 1, -5, -1)
1161 self.assertRaises(ValueError, islice, ra, 1, 10, -1)
1162 self.assertRaises(ValueError, islice, ra, 1, 10, 0)
1163 self.assertRaises(ValueError, islice, ra, 'a')
1164 self.assertRaises(ValueError, islice, ra, 'a', 1)
1165 self.assertRaises(ValueError, islice, ra, 1, 'a')
1166 self.assertRaises(ValueError, islice, ra, 'a', 1, 1)
1167 self.assertRaises(ValueError, islice, ra, 1, 'a', 1)
1168 self.assertEqual(len(list(islice(count(), 1, 10, maxsize))), 1)
1169
1170 # Issue #10323: Less islice in a predictable state
1171 c = count()
1172 self.assertEqual(list(islice(c, 1, 3, 50)), [1])
1173 self.assertEqual(next(c), 3)
1174
1175 # Issue #21321: check source iterator is not referenced
1176 # from islice() after the latter has been exhausted

Callers

nothing calls this directly

Calls 10

listClass · 0.85
iterFunction · 0.85
lenFunction · 0.85
countFunction · 0.85
nextFunction · 0.85
assertIsNotNoneMethod · 0.80
assertIsNoneMethod · 0.80
IntLikeClass · 0.70
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected