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

View File

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