コード例 #1
0
ファイル: test_golay.py プロジェクト: TheSchwa/qiime
 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)
コード例 #2
0
ファイル: test_golay.py プロジェクト: TheSchwa/qiime
    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)
コード例 #3
0
ファイル: test_golay.py プロジェクト: wilkox/qiime
    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)