3 # © Copyright 2021-2022, Scott Gasch
5 """letter_compress unittest."""
11 from pyutils import bootstrap
12 from pyutils import unittest_utils as uu
13 from pyutils.compress import letter_compress
16 class TestLetterCompress(unittest.TestCase):
17 def test_with_random_strings(self):
18 alphabet = 'abcdefghijklmnopqrstuvwxyz .,"-'
21 for letter in random.choices(alphabet, k=random.randrange(10, 5000)):
24 compressed = letter_compress.compress(message)
25 clen = len(compressed)
26 self.assertEqual(math.ceil(mlen * 5.0 / 8.0), clen)
27 decompressed = letter_compress.decompress(compressed)
29 decompressed, message, f'The bad message string was "{message}"'
33 if __name__ == '__main__':
34 bootstrap.initialize(unittest.main)()