def testReadWithOptional(self): autoOptionalField = 0x1234 field = 0x7654 writer = zserio.BitStreamWriter() AutoOptionalMemberAlignmentTest._writeAutoOptionalMemberAlignmentToStream(writer, autoOptionalField, field) reader = zserio.BitStreamReader(writer.getByteArray()) autoOptionalMemberAlignment = self.api.AutoOptionalMemberAlignment.fromReader(reader) self._checkAutoOptionalMemberAlignment(autoOptionalMemberAlignment, autoOptionalField, field)
def testWriteWithoutOptional(self): field = 0x7ACF autoOptionalMemberAlignment = self.api.AutoOptionalMemberAlignment.fromFields(None, field) writer = zserio.BitStreamWriter() autoOptionalMemberAlignment.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) readAutoOptionalMemberAlignment = self.api.AutoOptionalMemberAlignment.fromReader(reader) self._checkAutoOptionalMemberAlignment(readAutoOptionalMemberAlignment, None, field) self.assertTrue(autoOptionalMemberAlignment == readAutoOptionalMemberAlignment)
def _checkInt4Value(self, value): int4RangeCheckCompound = self.api.Int4RangeCheckCompound.fromFields( value) writer = zserio.BitStreamWriter() int4RangeCheckCompound.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) readInt4RangeCheckCompound = self.api.Int4RangeCheckCompound.fromReader( reader) self.assertEqual(int4RangeCheckCompound, readInt4RangeCheckCompound)
def testFromReader(self): writer = zserio.BitStreamWriter() self._writeTile(writer) reader = zserio.BitStreamReader(writer.getByteArray()) tile = self.api.Tile.fromReader(reader) self._checkTile(tile)
def testFromReader(self): writer = zserio.BitStreamWriter() self._writeTile(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) tile = self.api.Tile.from_reader(reader) self._checkTile(tile)
def testReadWrite(self): oneStringStructure = self.api.OneStringStructure(self.ONE_STRING) writer = zserio.BitStreamWriter() oneStringStructure.write(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) readOneStringStructure = self.api.OneStringStructure() readOneStringStructure.read(reader) self.assertEqual(self.ONE_STRING, readOneStringStructure.one_string) self.assertTrue(oneStringStructure == readOneStringStructure)
def testReadWrongArrayLength(self): numSentences = 10 wrongArrayLength = True writer = zserio.BitStreamWriter() self._writeMessageToStream(writer, numSentences, wrongArrayLength) reader = zserio.BitStreamReader(writer.getByteArray()) with self.assertRaises(zserio.PythonRuntimeException): message = self.api.Message.fromReader(reader) self._checkMessage(message, numSentences)
def testReadWrongCoordXConstraint(self): writer = zserio.BitStreamWriter() availability = self.api.Availability.Values.COORD_Y | self.api.Availability.Values.COORD_Z self.__class__._write(writer, availability, 1, 1, 1) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) structureBitmaskConstraints = self.api.StructureBitmaskConstraints() with self.assertRaises(zserio.PythonRuntimeException): structureBitmaskConstraints.read(reader)
def testWrite(self): writer = zserio.BitStreamWriter() emptyStructure = self.api.EmptyStructure() emptyStructure.write(writer) byteArray = writer.getByteArray() self.assertEqual(0, len(byteArray)) reader = zserio.BitStreamReader(writer.getByteArray()) readEmptyStructure = self.api.EmptyStructure.fromReader(reader) self.assertEqual(emptyStructure, readEmptyStructure)
def testWriteReadArrayType(self): testStructure = self.api.ArrayType_array([1, 2, 3, 4]) writer = zserio.BitStreamWriter() testStructure.write(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) readTestStructure = self.api.ArrayType_array.from_reader(reader) self.assertEqual(testStructure, readTestStructure)
def testWriteReadOffsetChecker(self): testStructure = self.api.OffsetChecker_array([0] * 4, [1, 2, 3, 4]) writer = zserio.BitStreamWriter() testStructure.write(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) readTestStructure = self.api.OffsetChecker_array.from_reader(reader) self.assertEqual(testStructure, readTestStructure)
def _checkWriteRead(self, numBlocks): database = self._createDatabase(numBlocks) writer = zserio.BitStreamWriter() database.write(writer) self.assertEqual(database.bitsizeof(), writer.bitposition) self.assertEqual(database.initialize_offsets(0), writer.bitposition) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) readDatabase = self.api.Database.from_reader(reader) self.assertEqual(database, readDatabase)
def testWrite(self): createWrongOffsets = True compoundIndexedOffsetArray = self._createCompoundIndexedOffsetArray(createWrongOffsets) writer = zserio.BitStreamWriter() compoundIndexedOffsetArray.write(writer) self._checkCompoundIndexedOffsetArray(compoundIndexedOffsetArray) reader = zserio.BitStreamReader(writer.getByteArray()) readCompoundIndexedOffsetArray = self.api.CompoundIndexedOffsetArray.fromReader(reader) self._checkCompoundIndexedOffsetArray(readCompoundIndexedOffsetArray) self.assertTrue(compoundIndexedOffsetArray == readCompoundIndexedOffsetArray)
def testWrite(self): database = self._createDatabase() writer = zserio.BitStreamWriter() database.write(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) self._checkDatabaseInStream(reader, database) reader.bitposition = 0 readDatabase = self.api.Database.from_reader(reader) self.assertEqual(database, readDatabase)
def testRead(self): writer = zserio.BitStreamWriter() self._writeFixedArrayToStream(writer) reader = zserio.BitStreamReader(writer.getByteArray()) fixedArray = self.api.FixedArray.fromReader(reader) uint8Array = fixedArray.getUint8Array() self.assertEqual(self.FIXED_ARRAY_LENGTH, len(uint8Array)) for i in range(self.FIXED_ARRAY_LENGTH): self.assertEqual(i, uint8Array[i])
def testWrite(self): createWrongOffsets = True bitOffset = self._createBitOffset(createWrongOffsets) writer = zserio.BitStreamWriter() bitOffset.write(writer) self._checkBitOffset(bitOffset) reader = zserio.BitStreamReader(writer.getByteArray()) readBitOffset = self.api.BitOffset.fromReader(reader) self._checkBitOffset(readBitOffset) self.assertTrue(bitOffset == readBitOffset)
def testWrite(self): grandChildParam = self._createGrandChildParam() writer = zserio.BitStreamWriter() grandChildParam.write(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) self._checkGrandChildParamInStream(reader, grandChildParam) reader.bitposition = 0 readGrandChildParam = self.api.GrandChildParam.from_reader(reader) self.assertEqual(grandChildParam, readGrandChildParam)
def testFromReader(self): selector = self.api.Selector.GREY value = 234 writer = zserio.BitStreamWriter() self._writeFullEnumParamChoiceToStream(writer, selector, value) reader = zserio.BitStreamReader(writer.getByteArray()) fullEnumParamChoice = self.api.FullEnumParamChoice.fromReader( reader, selector) self.assertEqual(selector, fullEnumParamChoice.getSelector()) self.assertEqual(value, fullEnumParamChoice.getGrey())
def testFromReader(self): selector = self.api.Selector.Values.WHITE value = 234 writer = zserio.BitStreamWriter() self._writeFullBitmaskParamChoiceToStream(writer, selector, value) reader = zserio.BitStreamReader(writer.getByteArray()) fullBitmaskParamChoice = self.api.FullBitmaskParamChoice.fromReader( reader, selector) self.assertEqual(selector, fullBitmaskParamChoice.getSelector()) self.assertEqual(value, fullBitmaskParamChoice.getWhite())
def testReadWrongPurpleConstraint(self): writer = zserio.BitStreamWriter() self.__class__._write(writer, self.api.BasicColor.BLACK, self.api.BasicColor.WHITE, self.api.ExtendedColor.LIME) reader = zserio.BitStreamReader(writer.getByteArray()) structureConstraints = self.api.StructureConstraints() with self.assertRaises(zserio.PythonRuntimeException): structureConstraints.read(reader)
def testReadWrite(self): instantiateOnlyNested = self.api.InstantiateOnlyNested( self.api.pkg.Test_uint32(self.api.N32(13))) writer = zserio.BitStreamWriter() instantiateOnlyNested.write(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) readInstantiateOnlyNested = self.api.InstantiateOnlyNested() readInstantiateOnlyNested.read(reader) self.assertEqual(instantiateOnlyNested, readInstantiateOnlyNested)
def testWrite(self): selector = 1 emptyChoiceWithDefault = self.api.EmptyChoiceWithDefault(selector) writer = zserio.BitStreamWriter() emptyChoiceWithDefault.write(writer) byteArray = writer.getByteArray() self.assertEqual(0, len(byteArray)) reader = zserio.BitStreamReader(writer.getByteArray()) readEmptyChoiceWithDefault = self.api.EmptyChoiceWithDefault.fromReader(reader, selector) self.assertEqual(emptyChoiceWithDefault, readEmptyChoiceWithDefault)
def _checkVarInt16Value(self, value): varInt16RangeCheckCompound = self.api.VarInt16RangeCheckCompound.fromFields( value) writer = zserio.BitStreamWriter() varInt16RangeCheckCompound.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) readVarInt16RangeCheckCompound = self.api.VarInt16RangeCheckCompound.fromReader( reader) self.assertEqual(varInt16RangeCheckCompound, readVarInt16RangeCheckCompound)
def _checkDynamicIntValue(self, numBits, value): dynamicIntRangeCheckCompound = self.api.DynamicIntRangeCheckCompound.fromFields( numBits, value) writer = zserio.BitStreamWriter() dynamicIntRangeCheckCompound.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) readDynamicIntRangeCheckCompound = self.api.DynamicIntRangeCheckCompound.fromReader( reader) self.assertEqual(dynamicIntRangeCheckCompound, readDynamicIntRangeCheckCompound)
def _checkRead(self, numElements): writer = zserio.BitStreamWriter() AutoArrayTest._writeAutoArrayToStream(writer, numElements) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) autoArray = self.api.AutoArray.from_reader(reader) uint8Array = autoArray.uint8_array self.assertEqual(numElements, len(uint8Array)) for i in range(numElements): self.assertEqual(i, uint8Array[i])
def testPackageNameConflict(self): # just test that PackageNameConflict uses correct Blob packageNameConflict = self.api.PackageNameConflict.fromFields(self.api.Blob.fromFields(13)) writer = zserio.BitStreamWriter() packageNameConflict.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) readPackageNameConflict = self.api.PackageNameConflict.fromReader(reader) self.assertEqual(13, packageNameConflict.getBlob().getValue()) self.assertEqual(packageNameConflict.getBlob().getValue(), readPackageNameConflict.getBlob().getValue())
def testRead(self): writer = zserio.BitStreamWriter() self._writeFixedArrayToStream(writer) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) fixedArray = self.api.FixedArray.from_reader(reader) uint8Array = fixedArray.uint8_array self.assertEqual(self.FIXED_ARRAY_LENGTH, len(uint8Array)) for i in range(self.FIXED_ARRAY_LENGTH): self.assertEqual(i, uint8Array[i])
def testWriteBlock12(self): block12 = self._createBlock12(self.BLOCK1_DATA, self.BLOCK2_DATA) writer = zserio.BitStreamWriter() block12.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) self._checkBlock12InStream(reader, self.BLOCK1_DATA, self.BLOCK2_DATA) reader.setBitPosition(0) readBlock12 = self.api.Block.fromReader(reader, len(self.BLOCK1_DATA)) self.assertEqual(block12, readBlock12)
def testReadWrite(self): instantiateOnlyNested = self.api.InstantiateOnlyNested.fromFields( self.api.pkg.Test_uint32.fromFields(self.api.N32.fromFields(13))) writer = zserio.BitStreamWriter() instantiateOnlyNested.write(writer) reader = zserio.BitStreamReader(writer.getByteArray()) readInstantiateOnlyNested = self.api.InstantiateOnlyNested() readInstantiateOnlyNested.read(reader) self.assertEqual(instantiateOnlyNested, readInstantiateOnlyNested)
def testFromReader(self): selector = self.api.Selector.GREY value = 234 writer = zserio.BitStreamWriter() self._writeEnumParamChoiceToStream(writer, selector, value) reader = zserio.BitStreamReader(writer.byte_array, writer.bitposition) enumParamChoice = self.api.EnumParamChoice.from_reader( reader, selector) self.assertEqual(selector, enumParamChoice.selector) self.assertEqual(value, enumParamChoice.grey)