def testAppendToBits(self): a = Bits(BitArray()) with self.assertRaises(AttributeError): a.append('0b1') self.assertEqual(type(a), Bits) b = bitstring.ConstBitStream(bitstring.BitStream()) self.assertEqual(type(b), bitstring.ConstBitStream)
def encode_number(v, fixed=None): v = v or 0 if compact_encoding: if fixed: return Bits(uint=v, length=fixed) if v == 0: result = Bits(uint=0, length=number_bits[0] + 1) else: result = BitArray() value = v for length in number_bits: mask = (1 << length) - 1 result.append(Bits(uint=value & mask, length=length)) value = value >> length result.append(Bits(bool=value > 0)) if value == 0: break else: result = ("%s;" % v).encode('utf-8') #debug("encode %d (0x%x) -> %r" % (v, v, result)) return result