def test_decode_bits(self): """ decode_bits should have correct num_errs, even if corrected = None """ for bitvec in ten_bitvecs: corr, num_errs = golay.decode_bits(bitvec) if corr is None: self.assertEqual(num_errs, 4) else: self.assertEqual(((corr + bitvec) % 2).sum(), num_errs)
def test_another(self): """ decode_bits should fix""" def _make_12bits(): n = 12 res = numpy.zeros((2 ** n, n), dtype="int") for i in range(2 ** n): res[i] = tuple((0, 1)[i >> j & 1] for j in xrange(n - 1, -1, -1)) return res # all possible 12 bit messages all_12bits = _make_12bits() # test of decode_bits trans = numpy.dot(golay.DEFAULT_G.T, all_12bits[666]) % 2 err = ( 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0) rec = (trans + err) % 2 corr, num_errs = golay.decode_bits(rec) self.assertEqual(corr, trans) self.assertEqual(corr, numpy.mod(rec + err, 2)) self.assertEqual(num_errs, 2)
def test_another(self): """ decode_bits should fix""" def _make_12bits(): n = 12 res = numpy.zeros((2**n, n), dtype="int") for i in range(2**n): res[i] = tuple( (0, 1)[i >> j & 1] for j in xrange(n - 1, -1, -1)) return res # all possible 12 bit messages all_12bits = _make_12bits() # test of decode_bits trans = numpy.dot(golay.DEFAULT_G.T, all_12bits[666]) % 2 err = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0) rec = (trans + err) % 2 corr, num_errs = golay.decode_bits(rec) self.assertItemsEqual(corr, trans) self.assertItemsEqual(corr, numpy.mod(rec + err, 2)) self.assertEqual(num_errs, 2)