def test_mask_formula_correctness(self): mask_samples = { 0: '1010101010101010101010101010101010101010101010101', 1: '1111111000000011111110000000111111100000001111111', 2: '1001001100100110010011001001100100110010011001001', 3: '1001001001001001001001001001001001001001001001001', 4: '1110001111000100011100001110111000111100010001110', 5: '1111111100000110010011010101100100110000011111111', 6: '1111111111000111011011010101101101110001111111111', 7: '1010101000111010001110101010111000101110001010101', } for mask_id in range(8): mask_func = get_mask_func(mask_id) mask_result = '' for i in range(7): for j in range(7): mask_result += '1' if mask_func(i, j) else '0' self.assertEqual(mask_samples[mask_id], mask_result)
def test_nonexistent_masks(self): self.assertRaisesMsg(QrFormatError, lambda: get_mask_func(-1), 'Bad mask pattern: -1') self.assertRaisesMsg(QrFormatError, lambda: get_mask_func(8), 'Bad mask pattern: 8')
def get_mask(self): print('ImageScanner.get_mask: {}'.format(self._was_read)) mask_func = get_mask_func(self.info.mask_id) return {(x, y): 1 if mask_func(y, x) else 0 for x in range(self.info.size) for y in range(self.info.size)}
def test_mask_bounds(self): for mask_id in range(8): mask_func = get_mask_func(mask_id) for i in range(177): for j in range(177): self.assertIn(mask_func(i, j), (0, 1))
def get_mask(self): mask_func = get_mask_func(self.info.mask_id) return {(x, y): 1 if mask_func(y, x) else 0 for x in range(self.info.size) for y in range(self.info.size)}