Пример #1
0
 def test_complex_case(self):
     # freq 1 4 5 7 10
     #      c d b e  a
     #      ^ ^
     # c 0
     # d 1
     # -
     # 5  5 7 10
     # b cd e  a
     # ^ ^^
     # b 0
     # c 1 0
     # d 1 1
     # -
     # 7 10  10
     # e  a bcd
     # ^  ^
     # a 1
     # b   0
     # c   01
     # d   11
     # e 0
     # -
     #  10 17
     # bcd ae
     # ^^^ ^^
     # a 1 1
     # b 0 0
     # c 0 01
     # d 0 11
     # e 1 0
     codes = huffman({'a': 10, 'b': 5, 'c': 1, 'd': 4, 'e': 7})
     assert codes == {
         'a': '11',
         'b': '00',
         'c': '010',
         'd': '011',
         'e': '10'
     }
Пример #2
0
 def test_corner_cases(self):
     assert huffman({}) == {}
     assert huffman({'a': 1}) == {'a': '0'}
Пример #3
0
 def test_equal_frequencies(self):
     codes = huffman({'a': 1, 'b': 1})
     assert codes == {'a': '0', 'b': '1'}
Пример #4
0
 def test_three_letters(self):
     codes = huffman({'a': 1, 'b': 2, 'c': 5})
     assert codes == {'a': '00', 'b': '01', 'c': '1'}
Пример #5
0
 def test_two_letters(self):
     codes = huffman({'c': 3, 'd': 4})
     assert codes == {'c': '0', 'd': '1'}
Пример #6
0
 def test_interface(self):
     codes = huffman({'a': 1, 'b': 2})
     assert codes == {'a': '0', 'b': '1'}