Coverage for /home/jenkins/workspace/NDS/Zserio/NDS_ZSERIO-linux-build/compiler/extensions/python/runtime/tests/test_bitbuffer.py: 100%
61 statements
« prev ^ index » next coverage.py v6.5.0, created at 2023-12-13 15:12 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2023-12-13 15:12 +0000
1import unittest
3from zserio.bitbuffer import BitBuffer
4from zserio.exception import PythonRuntimeException
6class BitStreamReaderTest(unittest.TestCase):
8 def test_buffer_constructor(self):
9 bytesize = 2
10 bitbuffer = BitBuffer(bytes([1, 2]))
11 self.assertEqual(8 * bytesize, bitbuffer.bitsize)
13 empty_bitsize = 0
14 empty_bitbuffer = BitBuffer(bytes([]))
15 self.assertEqual(empty_bitsize, empty_bitbuffer.bitsize)
17 def test_buffer_bitsize_constructor(self):
18 bitsize = 11
19 bitbuffer = BitBuffer(bytes([0x01, 0xE0]), bitsize)
20 self.assertEqual(bitsize, bitbuffer.bitsize)
22 empty_bitsize = 0
23 empty_bitbuffer = BitBuffer(bytes([]), empty_bitsize)
24 self.assertEqual(empty_bitsize, empty_bitbuffer.bitsize)
26 out_of_range_bitsize = 9
27 with self.assertRaises(PythonRuntimeException):
28 BitBuffer(bytes([1]), out_of_range_bitsize) # throws!
30 def test_eq(self):
31 bitsize = 11
32 bitbuffer1 = BitBuffer(bytes([0xAB, 0xE0]), bitsize)
33 bitbuffer2 = BitBuffer(bytes([0xAB, 0xF0]), bitsize)
34 self.assertEqual(bitbuffer1, bitbuffer2)
36 bitbuffer3 = BitBuffer(bytes([0xAB, 0xFF]), bitsize)
37 self.assertEqual(bitbuffer1, bitbuffer3)
39 bitbuffer4 = BitBuffer(bytes([0xAB, 0xC0]), bitsize)
40 self.assertNotEqual(bitbuffer1, bitbuffer4)
42 bitbuffer5 = BitBuffer(bytes([0xBA, 0xE0]), bitsize)
43 self.assertNotEqual(bitbuffer1, bitbuffer5)
45 bitbuffer6 = BitBuffer(bytes([0xAB]))
46 self.assertNotEqual(bitbuffer1, bitbuffer6)
48 bitbuffer7 = BitBuffer(bytes())
49 self.assertNotEqual(bitbuffer1, bitbuffer7)
51 self.assertNotEqual(bitbuffer1, 1)
53 def test_hashcode(self):
54 bitsize = 11
55 bitbuffer1 = BitBuffer(bytes([0xAB, 0xE0]), bitsize)
56 bitbuffer2 = BitBuffer(bytes([0xAB, 0xF0]), bitsize)
57 self.assertEqual(hash(bitbuffer1), hash(bitbuffer2))
59 bitbuffer3 = BitBuffer(bytes([0xAB, 0xFF]), bitsize)
60 self.assertEqual(hash(bitbuffer1), hash(bitbuffer3))
62 bitbuffer4 = BitBuffer(bytes([0xAB, 0xC0]), bitsize)
63 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer4))
65 bitbuffer5 = BitBuffer(bytes([0xBA, 0xE0]), bitsize)
66 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer5))
68 bitbuffer6 = BitBuffer(bytes([0xAB]))
69 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer6))
71 bitbuffer7 = BitBuffer(bytes())
72 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer7))
74 def test_buffer(self):
75 bitsize = 11
76 buffer = bytes([0xAB, 0xE0])
77 bitbuffer = BitBuffer(buffer, bitsize)
78 self.assertEqual(buffer, bitbuffer.buffer)
80 def test_bitsize(self):
81 bitsize = 11
82 bitbuffer = BitBuffer(bytes([0xAB, 0xE0]), bitsize)
83 self.assertEqual(bitsize, bitbuffer.bitsize)