#!/usr/bin/env python3 # © Copyright 2021-2022, Scott Gasch """letter_compress unittest.""" import math import random import unittest import bootstrap import letter_compress import unittest_utils as uu class TestLetterCompress(unittest.TestCase): def test_with_random_strings(self): alphabet = 'abcdefghijklmnopqrstuvwxyz .,"-' for n in range(20): message = "" for letter in random.choices(alphabet, k=random.randrange(10, 5000)): message += letter mlen = len(message) compressed = letter_compress.compress(message) clen = len(compressed) self.assertEqual(math.ceil(mlen * 5.0 / 8.0), clen) decompressed = letter_compress.decompress(compressed) self.assertEqual(decompressed, message, f'The bad message string was "{message}"') if __name__ == '__main__': bootstrap.initialize(unittest.main)()