def encode(self): """ Returns a single byte array including all the payloads and indexes""" result = bytearray() result.append(0x00) for index in self.items: item = self.items[index] print "-", index, "\t>", repr(item) # append length bytes result.extend(bincalc.numberToVarint(len(item))) # append index bytes result.extend(bincalc.numberToVarint(index)) # append content bytes result.extend(item) return result
def test_03_numberToVarint(self): # bincalc.py print print " number | encoded | restored" print "---------+----------------------------+----------" tests = [0, 1, 127, 128, 255, 256, 1024, 65535, 65536, 1<<62, 1<<63] for orig in tests: b = bincalc.numberToVarint(orig) restored = bincalc.varintToNumber(b) print " %5i | %26s | %s" % (orig, repr(b), repr(restored)) self.assertEqual(orig, restored)