Beispiel #1
0
 def deserialize(cls, data, field_bytes):
     pair_size = ADDR_SIZE_IN_BYTES + field_bytes
     assert len(data) % (pair_size) == 0,\
         f'Data must consist of pairs of address (8 bytes) and value ({field_bytes} bytes).'
     pair_stream = (data[pair_size * i:pair_size * (i + 1)]
                    for i in range(len(data) // pair_size))
     return cls(
         (RelocatableValue.from_bytes(pair[:ADDR_SIZE_IN_BYTES], 'little'),
          RelocatableValue.from_bytes(pair[ADDR_SIZE_IN_BYTES:], 'little'))
         for pair in pair_stream)
def test_relocatable_value_serialization(byte_order, n_bytes):
    for num in [19, RelocatableValue(2, 5)]:
        assert RelocatableValue.from_bytes(
            RelocatableValue.to_bytes(num, n_bytes, byte_order),
            byte_order) == num