Coverage for /home/jenkins/workspace/NDS/Zserio/NDS_ZSERIO-linux-build/compiler/extensions/python/runtime/tests/test_bitfield.py: 100%

48 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2023-12-13 15:12 +0000

1import unittest 

2 

3from zserio.bitfield import (bitfield_lowerbound, bitfield_upperbound, 

4 signed_bitfield_lowerbound, signed_bitfield_upperbound) 

5from zserio.exception import PythonRuntimeException 

6 

7class BitFieldTest(unittest.TestCase): 

8 

9 def test_bitfield_lowerbound(self): 

10 with self.assertRaises(PythonRuntimeException): 

11 bitfield_lowerbound(0) 

12 with self.assertRaises(PythonRuntimeException): 

13 bitfield_lowerbound(65) 

14 

15 self.assertEqual(0, bitfield_lowerbound(1)) 

16 self.assertEqual(0, bitfield_lowerbound(2)) 

17 self.assertEqual(0, bitfield_lowerbound(8)) 

18 self.assertEqual(0, bitfield_lowerbound(16)) 

19 self.assertEqual(0, bitfield_lowerbound(32)) 

20 self.assertEqual(0, bitfield_lowerbound(64)) 

21 

22 def test_bitfield_upperbound(self): 

23 with self.assertRaises(PythonRuntimeException): 

24 bitfield_upperbound(0) 

25 with self.assertRaises(PythonRuntimeException): 

26 bitfield_upperbound(65) 

27 

28 self.assertEqual(1, bitfield_upperbound(1)) 

29 self.assertEqual(3, bitfield_upperbound(2)) 

30 self.assertEqual(255, bitfield_upperbound(8)) 

31 self.assertEqual(65535, bitfield_upperbound(16)) 

32 self.assertEqual(4294967295, bitfield_upperbound(32)) 

33 self.assertEqual(0xFFFFFFFFFFFFFFFF, bitfield_upperbound(64)) 

34 

35 def test_signed_bitfield_lowerbound(self): 

36 with self.assertRaises(PythonRuntimeException): 

37 signed_bitfield_lowerbound(0) 

38 with self.assertRaises(PythonRuntimeException): 

39 signed_bitfield_lowerbound(65) 

40 

41 self.assertEqual(-1, signed_bitfield_lowerbound(1)) 

42 self.assertEqual(-2, signed_bitfield_lowerbound(2)) 

43 self.assertEqual(-128, signed_bitfield_lowerbound(8)) 

44 self.assertEqual(-32768, signed_bitfield_lowerbound(16)) 

45 self.assertEqual(-2147483648, signed_bitfield_lowerbound(32)) 

46 self.assertEqual(-9223372036854775808, signed_bitfield_lowerbound(64)) 

47 

48 def test_signed_bitfield_upperbound(self): 

49 with self.assertRaises(PythonRuntimeException): 

50 signed_bitfield_upperbound(0) 

51 with self.assertRaises(PythonRuntimeException): 

52 signed_bitfield_upperbound(65) 

53 

54 self.assertEqual(0, signed_bitfield_upperbound(1)) 

55 self.assertEqual(1, signed_bitfield_upperbound(2)) 

56 self.assertEqual(127, signed_bitfield_upperbound(8)) 

57 self.assertEqual(32767, signed_bitfield_upperbound(16)) 

58 self.assertEqual(2147483647, signed_bitfield_upperbound(32)) 

59 self.assertEqual(9223372036854775807, signed_bitfield_upperbound(64))