def write(writer: BitStreamWriter, value: int) -> None: """ Writes Zserio varint type to the bit stream. :param writer: Bit stream where to write. :param value: Zserio varint type to write. """ writer.writeVarInt(value)
def testFile(self): testFilename = "BitStreamTest.bin" writer = BitStreamWriter() writer.writeBits(13, 7) writer.writeString(testFilename) writer.writeVarInt(-123456) writer.toFile(testFilename) reader = BitStreamReader.fromFile(testFilename) self.assertEqual(13, reader.readBits(7)) self.assertEqual(testFilename, reader.readString()) self.assertEqual(-123456, reader.readVarInt())
def testWriteVarInt(self): writer = BitStreamWriter() writer.writeVarInt(0) self.assertEqual(b'\x00', writer.getByteArray()) self.assertEqual(8, writer.getBitPosition()) writer.writeVarInt(-1 << sum(VARINT_NUM_BITS)) self.assertEqual(16, writer.getBitPosition()) self.assertEqual(b'\x00\x80', writer.getByteArray()) # INT64_MIN is encoded as -0 with self.assertRaises(PythonRuntimeException): writer.writeVarInt((-1 << sum(VARINT_NUM_BITS)) - 1) with self.assertRaises(PythonRuntimeException): writer.writeVarInt(1 << sum(VARINT_NUM_BITS))