예제 #1
0
 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_)
예제 #2
0
 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_)
예제 #3
0
    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_)