Used isort to sort imports. Also added to the git pre-commit hook.
[python_utils.git] / tests / letter_compress_test.py
1 #!/usr/bin/env python3
2
3 import random
4 import math
5 import unittest
6
7 import bootstrap
8 import letter_compress
9 import unittest_utils as uu
10
11
12 class TestLetterCompress(unittest.TestCase):
13
14     def test_with_random_strings(self):
15         alphabet = 'abcdefghijklmnopqrstuvwxyz .,"-'
16         for n in range(20):
17             message = ""
18             for letter in random.choices(alphabet, k=random.randrange(10, 5000)):
19                 message += letter
20             mlen = len(message)
21             compressed = letter_compress.compress(message)
22             clen = len(compressed)
23             self.assertEqual(math.ceil(mlen * 5.0 / 8.0), clen)
24             decompressed = letter_compress.decompress(compressed)
25             self.assertEqual(decompressed, message, f'The bad message string was "{message}"')
26
27
28 if __name__ == '__main__':
29     bootstrap.initialize(unittest.main)()