def test_int_8bit(self): data = b'\x00\xFE\x01' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(1, ret) data = b'\x00\xFE\x80' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(-128, ret)
def test_int_24bit(self): data = b'\x00\xF0\x01\x00\x00' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(1, ret) data = b'\x00\xF0\x00\x00\x80' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(-(2**23), ret)
def test_int_16bit(self): data = b'\x00' data += b'\xC0' data += b'\x01\x00' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(1, ret) data = b'\x00\xC0\x00\x80' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(-32768, ret)
def test_uint_4bit(self): data = b'\x00\xF1' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(0, ret) data = b'\x00\xF2' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(1, ret) data = b'\x00\xFF' ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(14, ret)
def test_str_6bit(self): data1 = b'\x00' data1 += b'\x01' data1 += b'A' ret = unpack_ziplist_entry(BytesIO(data1)) self.assertEqual(b'A', ret) data2 = b'\x00' data2 += b'\x3F' data2 += b'a' * 63 ret = unpack_ziplist_entry(BytesIO(data2)) self.assertEqual(b'a' * 63, ret)
def test_str_14bit(self): data1 = b'\x00' data1 += b'\x40\x01' data1 += b'A' ret = unpack_ziplist_entry(BytesIO(data1)) self.assertEqual(b'A', ret) data2 = b'\x00' data2 += b'\x60\x00' data2 += b'a' * (2 ** 13) ret = unpack_ziplist_entry(BytesIO(data2)) self.assertEqual(b'a' * (2 ** 13), ret) self.assertEqual(8192, len(ret))
def test_bad_prev_length(self): data = b'\xFFabc' with self.assertRaises(RDBValueError): unpack_ziplist_entry(BytesIO(data))
def test_str_32bit(self): data = b'\x00' data += b'\x80\x08\x00\00\x00' data += b'A' * 8 ret = unpack_ziplist_entry(BytesIO(data)) self.assertEqual(b'AAAAAAAA', ret)