def _test_conversion(self, format_name: str, inputs, outputs): pf = Dictionary.get_proxy(format_name) for input, output in zip(inputs, outputs): packed = np.frombuffer(input, dtype=np.uint8) unpacked_elements = pf.expand(packed) self.assertEqual(len(outputs), unpacked_elements.size) for i, element in enumerate(unpacked_elements): self.assertEqual(output[i], element)
def _test_issue_146_packed_12(self): _1st = 0xff _3rd = 0xff ba = bytes([_1st, 0xff, _3rd]) packed = np.frombuffer(ba, dtype=np.uint8) pf = Dictionary.get_proxy('Mono12p') unpacked = pf.expand(packed) self.assertEqual(0xf * 256 + _1st, unpacked[0]) self.assertEqual(_3rd * 16 + 0xf, unpacked[1])
def _test_issue_146_packed_10(self): element = 0xff ba = bytes([element, element, element, element]) packed = np.frombuffer(ba, dtype=np.uint8) pf = Dictionary.get_proxy('Mono10p') unpacked = pf.expand(packed) self.assertEqual(0x3ff, unpacked[0]) self.assertEqual(0x3ff, unpacked[1]) self.assertEqual(0x7ff, unpacked[2])
def _test_issue_146_group_packed_12(self): _1st = 0xff _3rd = 0xff ba = bytes([_1st, 0xff, _3rd]) packed = np.frombuffer(ba, dtype=np.uint8) pf = Dictionary.get_proxy('BayerRG12Packed') unpacked = pf.expand(packed) self.assertEqual(_1st * 16 + 0xf, unpacked[0]) self.assertEqual(_3rd * 16 + 0xf, unpacked[1])
def _test_issue_146_mono_unpacked_multibytes(self): names = ['Mono10', 'Mono12'] maximums = [0x4, 0x10] for index, name in enumerate(names): pf = Dictionary.get_proxy(name) for i in range(maximums[index]): for j in range(0x100): ba = bytes([j, i, j, i]) packed = np.frombuffer(ba, dtype=np.uint8) unpacked = pf.expand(packed) # We know it's redundant but check 10 times: for l in range(10): for k in range(2): self.assertEqual((i << 8) + j, unpacked[k])