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

1import unittest 

2 

3from zserio.bitbuffer import BitBuffer 

4from zserio.exception import PythonRuntimeException 

5 

6class BitStreamReaderTest(unittest.TestCase): 

7 

8 def test_buffer_constructor(self): 

9 bytesize = 2 

10 bitbuffer = BitBuffer(bytes([1, 2])) 

11 self.assertEqual(8 * bytesize, bitbuffer.bitsize) 

12 

13 empty_bitsize = 0 

14 empty_bitbuffer = BitBuffer(bytes([])) 

15 self.assertEqual(empty_bitsize, empty_bitbuffer.bitsize) 

16 

17 def test_buffer_bitsize_constructor(self): 

18 bitsize = 11 

19 bitbuffer = BitBuffer(bytes([0x01, 0xE0]), bitsize) 

20 self.assertEqual(bitsize, bitbuffer.bitsize) 

21 

22 empty_bitsize = 0 

23 empty_bitbuffer = BitBuffer(bytes([]), empty_bitsize) 

24 self.assertEqual(empty_bitsize, empty_bitbuffer.bitsize) 

25 

26 out_of_range_bitsize = 9 

27 with self.assertRaises(PythonRuntimeException): 

28 BitBuffer(bytes([1]), out_of_range_bitsize) # throws! 

29 

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) 

35 

36 bitbuffer3 = BitBuffer(bytes([0xAB, 0xFF]), bitsize) 

37 self.assertEqual(bitbuffer1, bitbuffer3) 

38 

39 bitbuffer4 = BitBuffer(bytes([0xAB, 0xC0]), bitsize) 

40 self.assertNotEqual(bitbuffer1, bitbuffer4) 

41 

42 bitbuffer5 = BitBuffer(bytes([0xBA, 0xE0]), bitsize) 

43 self.assertNotEqual(bitbuffer1, bitbuffer5) 

44 

45 bitbuffer6 = BitBuffer(bytes([0xAB])) 

46 self.assertNotEqual(bitbuffer1, bitbuffer6) 

47 

48 bitbuffer7 = BitBuffer(bytes()) 

49 self.assertNotEqual(bitbuffer1, bitbuffer7) 

50 

51 self.assertNotEqual(bitbuffer1, 1) 

52 

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)) 

58 

59 bitbuffer3 = BitBuffer(bytes([0xAB, 0xFF]), bitsize) 

60 self.assertEqual(hash(bitbuffer1), hash(bitbuffer3)) 

61 

62 bitbuffer4 = BitBuffer(bytes([0xAB, 0xC0]), bitsize) 

63 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer4)) 

64 

65 bitbuffer5 = BitBuffer(bytes([0xBA, 0xE0]), bitsize) 

66 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer5)) 

67 

68 bitbuffer6 = BitBuffer(bytes([0xAB])) 

69 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer6)) 

70 

71 bitbuffer7 = BitBuffer(bytes()) 

72 self.assertNotEqual(hash(bitbuffer1), hash(bitbuffer7)) 

73 

74 def test_buffer(self): 

75 bitsize = 11 

76 buffer = bytes([0xAB, 0xE0]) 

77 bitbuffer = BitBuffer(buffer, bitsize) 

78 self.assertEqual(buffer, bitbuffer.buffer) 

79 

80 def test_bitsize(self): 

81 bitsize = 11 

82 bitbuffer = BitBuffer(bytes([0xAB, 0xE0]), bitsize) 

83 self.assertEqual(bitsize, bitbuffer.bitsize)