def test_round_trip(self, b): """test inverting generate_compressed and generate_uncompressed""" orig_text = b freq = make_freq_dict(orig_text) assume(len(freq) > 1) tree = huffman_tree(freq) codes = get_codes(tree) compressed = generate_compressed(orig_text, codes) uncompressed = generate_uncompressed(tree, compressed, len(orig_text)) assert orig_text == uncompressed, '\n'.join([ str(list(orig_text)), byte_to_bits(compressed[0]), str(list(uncompressed)), str(codes) ])
def test_byte_to_bits(self, b): """byte_to_bits produces binary strings of length 8""" self.assertTrue(set(byte_to_bits(b)).issubset({"0", "1"})) self.assertEqual(len(byte_to_bits(b)), 8)