Serialization for unsigned integers
[sandbox] / serial / test_binary.py
1 import unittest
2
3 import binary
4
5 class SerializeTests(unittest.TestCase):
6     def test_serializes_tag_only_types(self):
7         self.assertEqual(
8             binary.serialize(binary.TaggedObject(
9                 tag = binary.TAG_NULL,
10                 instance = None,
11             )),
12             b'\x00',
13         )
14         self.assertEqual(
15             binary.serialize(binary.TaggedObject(
16                 tag = binary.TAG_TRUE,
17                 instance = True,
18             )),
19             b'\x01',
20         )
21         self.assertEqual(
22             binary.serialize(binary.TaggedObject(
23                 tag = binary.TAG_FALSE,
24                 instance = False,
25             )),
26             b'\x02',
27         )
28
29     def test_serializes_unsigned_integer_types(self):
30         self.assertEqual(
31             binary.serialize(binary.TaggedObject(
32                 tag = binary.TAG_UINT8,
33                 instance = 7,
34             )),
35             b'\x03\x07',
36         )
37         self.assertEqual(
38             binary.serialize(binary.TaggedObject(
39                 tag = binary.TAG_UINT16,
40                 instance = 7,
41             )),
42             b'\x04\x00\x07',
43         )
44         self.assertEqual(
45             binary.serialize(binary.TaggedObject(
46                 tag = binary.TAG_UINT32,
47                 instance = 7,
48             )),
49             b'\x05\x00\x00\x00\x07',
50         )
51         self.assertEqual(
52             binary.serialize(binary.TaggedObject(
53                 tag = binary.TAG_UINT64,
54                 instance = 7,
55             )),
56             b'\x06\x00\x00\x00\x00\x00\x00\x00\x07',
57         )
58
59
60 class DeserializeTests(unittest.TestCase):
61     def test_deserializes_tag_only_types(self):
62         self.assertEqual(
63             binary.deserialize(b'\x00'),
64             binary.TaggedObject(
65                 tag = binary.TAG_NULL,
66                 instance = None,
67             ),
68         )
69         self.assertEqual(
70             binary.deserialize(b'\x01'),
71             binary.TaggedObject(
72                 tag = binary.TAG_TRUE,
73                 instance = True,
74             ),
75         )
76         self.assertEqual(
77             binary.deserialize(b'\x02'),
78             binary.TaggedObject(
79                 tag = binary.TAG_FALSE,
80                 instance = False,
81             )
82         )
83
84 unittest.main()