2020-07-23 13:54:49 +00:00
|
|
|
from common import *
|
|
|
|
|
|
|
|
if not utils.BITCOIN_ONLY:
|
|
|
|
from apps.cardano.helpers.utils import variable_length_encode
|
|
|
|
|
|
|
|
|
|
|
|
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
|
|
|
class TestCardanoUtils(unittest.TestCase):
|
|
|
|
def test_variable_length_encode(self):
|
|
|
|
test_vectors = [
|
2020-11-11 13:43:09 +00:00
|
|
|
(0, bytes([0x00])),
|
|
|
|
(42, bytes([0x2A])),
|
|
|
|
(127, bytes([0x7F])),
|
2020-07-23 13:54:49 +00:00
|
|
|
(128, bytes([0x81, 0x00])),
|
|
|
|
(129, bytes([0x81, 0x01])),
|
|
|
|
(255, bytes([0x81, 0x7F])),
|
|
|
|
(256, bytes([0x82, 0x00])),
|
|
|
|
(16383, bytes([0xFF, 0x7F])),
|
|
|
|
(16384, bytes([0x81, 0x80, 0x00])),
|
|
|
|
]
|
|
|
|
|
|
|
|
for number, expected in test_vectors:
|
|
|
|
actual = variable_length_encode(number)
|
|
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
|
|
|
|
|
|
def test_variable_length_encode_negative_number(self):
|
|
|
|
with self.assertRaises(ValueError):
|
|
|
|
variable_length_encode(-1)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
unittest.main()
|