Esempio n. 1
0
 def decode(self, data, parent=None, name=None, little_endian=False):
     container = self._get_struct(name, parent, little_endian=little_endian)
     if little_endian:
         data = data[::-1]
     bin_str = to_binary_string_of_length(self.binlength, data[:self.binlength / 8])
     data_index = 2
     for field in self._fields.values():
         container[field.name] = self._create_field(bin_str, data_index,
                                                    field)
         data_index += field.length.value
     return container
 def test_to_0bbinary(self):
     self.assertEquals(to_binary_string_of_length(1, "\x00"), "0b0")
     self.assertEquals(to_binary_string_of_length(3, "\x00"), "0b000")
     self.assertEquals(to_binary_string_of_length(9, "\x01\xff"), "0b111111111")
     self.assertEquals(to_binary_string_of_length(12, "\x01\xff"), "0b000111111111")
     self.assertEquals(
         to_binary_string_of_length(68, "\x01\x00\x00\x00\x00\x00\x00\x00\x00"), "0b0001" + ("0000" * 16)
     )
     self.assertEquals(
         to_binary_string_of_length(2048, "\xff\xff\xff\xff\xff\xff\xff\xff" * 32), "0b" + ("11" * 1024)
     )
Esempio n. 3
0
 def test_to_0bbinary(self):
     self.assertEquals(to_binary_string_of_length(1, '\x00'), '0b0')
     self.assertEquals(to_binary_string_of_length(3, '\x00'), '0b000')
     self.assertEquals(to_binary_string_of_length(9, '\x01\xff'),
                       '0b111111111')
     self.assertEquals(to_binary_string_of_length(12, '\x01\xff'),
                       '0b000111111111')
     self.assertEquals(
         to_binary_string_of_length(68,
                                    '\x01\x00\x00\x00\x00\x00\x00\x00\x00'),
         '0b0001' + ('0000' * 16))
     self.assertEquals(
         to_binary_string_of_length(
             2048, '\xff\xff\xff\xff\xff\xff\xff\xff' * 32),
         '0b' + ('11' * 1024))