def scheme3(kmer):
    '''
    2 bit alphabet, BWT, MTF, shitty huffman encoding, 0 => 1, 1 => 01, 2 => 000, 3 => 001
    Add 6 bits for eol position
    '''
    def huff_size(c):
        return { 0: 1, 
                 1: 2,
                 2: 3,
                 3: 3,
                 }[c]
    trans_kmer, eol_idx = bwt.eol_format(bwt.bwt(kmer))
    trans_kmer = mtf.mtf(trans_kmer)
    size = 0
    size += 6
    i = 0
    while i < len(trans_kmer):
        size += huff_size(trans_kmer[i])
        i += 1
    return size
 def test_mtf(self):
     out = mtf.mtf("ACGATGTA")
     self.assertEqual(out, [0,1,2,2,3,2,1,2])
 def test_identity(self):
     encoding = mtf.mtf("ACTGTGTA")
     decoding = mtf.imtf(encoding)
     self.assertEqual(''.join(decoding), "ACTGTGTA")