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
« 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
6from lasso.io.binary_buffer import BinaryBuffer
9class BinaryBufferTest(TestCase):
10 def setUp(self):
12 # read file
13 self.bb = BinaryBuffer("test/simple_d3plot/d3plot")
15 def test_init(self):
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)
22 def test_memoryview(self):
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""))
29 def test_reading(self):
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)
35 self.assertEqual(self.bb.read_text(0, 40), " " * 40)
36 self.assertEqual(self.bb.read_text(52, 4), "R712")
38 self.assertListEqual(self.bb.read_ndarray(60, 12, 1, np.int32).tolist(), [4, 4915, 6])
40 def test_save(self):
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)
47 def test_writing(self):
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)
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())
57 def test_size(self):
59 bb = BinaryBuffer("test/simple_d3plot/d3plot")
60 self.assertEqual(bb.size, 192512)
61 self.assertEqual(bb.size, len(bb))
63 bb.size = 192511
64 self.assertEqual(bb.size, 192511)
66 bb.size = 192512
67 self.assertEqual(bb.size, 192512)
68 self.assertEqual(bb.mv_[-1 : len(bb)].tobytes(), b"0")