variable-length-quantity: Add parameters to exercise placeholder to resolve #651

This commit is contained in:
Ilya Khadykin
2017-10-22 09:59:45 +03:00
committed by GitHub
2 changed files with 8 additions and 8 deletions

View File

@@ -3,32 +3,32 @@ SEVENBITSMASK = 0x7f
def encode_single(n):
bytes = [n & SEVENBITSMASK]
bytes_ = [n & SEVENBITSMASK]
n >>= 7
while n > 0:
bytes.append(n & SEVENBITSMASK | EIGHTBITMASK)
bytes_.append(n & SEVENBITSMASK | EIGHTBITMASK)
n >>= 7
return bytes[::-1]
return bytes_[::-1]
def encode(numbers):
return sum((encode_single(n) for n in numbers), [])
def decode(bytes):
def decode(bytes_):
values = []
n = 0
for i, byte in enumerate(bytes):
for i, byte in enumerate(bytes_):
n <<= 7
n += (byte & SEVENBITSMASK)
if byte & EIGHTBITMASK == 0:
values.append(n)
n = 0
elif i == len(bytes) - 1:
elif i == len(bytes_) - 1:
raise ValueError('incomplete byte sequence')
return values

View File

@@ -1,6 +1,6 @@
def encode():
def encode(numbers):
pass
def decode():
def decode(bytes_):
pass