Coverage for lasso/io/test_binary_buffer.py: 100%

44 statements  

« prev     ^ index     » next       coverage.py v7.2.4, created at 2023-04-28 18:42 +0100

1import os 

2import numpy as np 

3from unittest import TestCase 

4import filecmp 

5 

6from lasso.io.binary_buffer import BinaryBuffer 

7 

8 

9class BinaryBufferTest(TestCase): 

10 def setUp(self): 

11 

12 # read file 

13 self.bb = BinaryBuffer("test/simple_d3plot/d3plot") 

14 

15 def test_init(self): 

16 

17 # test some stuff for fun 

18 self.assertEqual(self.bb.mv_[40:42].tobytes(), b"\xaf\\") 

19 self.assertEqual(len(self.bb), len(self.bb.mv_)) 

20 self.assertEqual(len(self.bb), 192512) 

21 

22 def test_memoryview(self): 

23 

24 self.assertEqual(self.bb.mv_, self.bb.memoryview) 

25 with self.assertRaises(AssertionError): 

26 self.bb.memoryview = None 

27 self.memoryview = memoryview(bytearray(b"")) 

28 

29 def test_reading(self): 

30 

31 # numbers 

32 self.assertEqual(self.bb.read_number(44, np.int32), 1) 

33 self.assertEqual(self.bb.read_number(56, np.float32), 960.0) 

34 

35 self.assertEqual(self.bb.read_text(0, 40), " " * 40) 

36 self.assertEqual(self.bb.read_text(52, 4), "R712") 

37 

38 self.assertListEqual(self.bb.read_ndarray(60, 12, 1, np.int32).tolist(), [4, 4915, 6]) 

39 

40 def test_save(self): 

41 

42 self.bb.save("test/tmp") 

43 eq = filecmp.cmp("test/simple_d3plot/d3plot", "test/tmp") 

44 os.remove("test/tmp") 

45 self.assertEqual(eq, True) 

46 

47 def test_writing(self): 

48 

49 bb = BinaryBuffer("test/simple_d3plot/d3plot") 

50 bb.write_number(44, 13, np.int32) 

51 self.assertEqual(bb.read_number(44, np.int32), 13) 

52 

53 array = np.array([1, 2, 3, 4], np.int32) 

54 bb.write_ndarray(array, 44, 1) 

55 self.assertListEqual(bb.read_ndarray(44, 16, 1, array.dtype).tolist(), array.tolist()) 

56 

57 def test_size(self): 

58 

59 bb = BinaryBuffer("test/simple_d3plot/d3plot") 

60 self.assertEqual(bb.size, 192512) 

61 self.assertEqual(bb.size, len(bb)) 

62 

63 bb.size = 192511 

64 self.assertEqual(bb.size, 192511) 

65 

66 bb.size = 192512 

67 self.assertEqual(bb.size, 192512) 

68 self.assertEqual(bb.mv_[-1 : len(bb)].tobytes(), b"0")