def test_chunk_bytes_iter_stride(self): iter_ = iter( chunk_bytes_iter(bytes_iter(chunk_size=3, chunks=2), 3, stride=(1, 1))) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02", "stride": (0, 1) }) self.assertEqual(next(iter_), { "raw": b"\x01\x02\x03", "stride": (1, 1) }) self.assertEqual(next(iter_), { "raw": b"\x02\x03\x04", "stride": (1, 1) }) # This is finished, but the chunk_bytes doesn't know it yet. self.assertEqual(next(iter_), { "raw": b"\x03\x04\x05", "stride": (1, 1) }) self.assertEqual(next(iter_), {"raw": b"\x04\x05", "stride": (1, 0)}) with self.assertRaises(StopIteration): next(iter_)
def test_chunk_bytes_iter_too_big(self): iter_ = iter( chunk_bytes_iter(bytes_iter(chunk_size=3, chunks=2), 10, stride=(0, 0))) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02\x03\x04\x05", "stride": (0, 0) }) with self.assertRaises(StopIteration): next(iter_)
def test_chunk_bytes_iter_stride_stream(self): iter_ = iter( chunk_bytes_iter(bytes_iter(chunk_size=3, chunks=2), 5, stride=(1, 1), stream=True)) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02", "stride": (0, 0), "partial": True }) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02\x03\x04", "stride": (0, 1), "partial": False }) self.assertEqual(next(iter_), { "raw": b"\x03\x04\x05", "stride": (1, 0), "partial": False }) with self.assertRaises(StopIteration): next(iter_) iter_ = iter( chunk_bytes_iter(bytes_iter(chunk_size=3, chunks=3), 5, stride=(1, 1), stream=True)) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02", "stride": (0, 0), "partial": True }) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02\x03\x04", "stride": (0, 1), "partial": False }) self.assertEqual(next(iter_), { "raw": b"\x03\x04\x05\x06\x07", "stride": (1, 1), "partial": False }) self.assertEqual(next(iter_), { "raw": b"\x06\x07\x08", "stride": (1, 0), "partial": False }) with self.assertRaises(StopIteration): next(iter_) iter_ = iter( chunk_bytes_iter(bytes_iter(chunk_size=3, chunks=3), 10, stride=(1, 1), stream=True)) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02", "stride": (0, 0), "partial": True }) self.assertEqual(next(iter_), { "raw": b"\x00\x01\x02\x03\x04\x05", "stride": (0, 0), "partial": True }) self.assertEqual( next(iter_), { "raw": b"\x00\x01\x02\x03\x04\x05\x06\x07\x08", "stride": (0, 0), "partial": True }) self.assertEqual( next(iter_), { "raw": b"\x00\x01\x02\x03\x04\x05\x06\x07\x08", "stride": (0, 0), "partial": False }) with self.assertRaises(StopIteration): next(iter_)