variable-length-quantity: Add parameters to exercise placeholder to resolve #651
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
def encode():
|
def encode(numbers):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def decode():
|
def decode(bytes_):
|
||||||
pass
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user