summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2021-09-27 08:47:39 -0700
committerScott Gasch <[email protected]>2021-09-27 08:47:39 -0700
commit37d09d6ac30c8c66477149b7c73139c3e6782468 (patch)
treee55c45fd4a4d2f66eef1b33defe039ad579ebdcb /tests
parenta8da0e2eca96cedaf582bc41ab82ec4ff87e443c (diff)
Compress small text messages by just restricting the alphabet. Adds bidict.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/letter_compress_test.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/letter_compress_test.py b/tests/letter_compress_test.py
new file mode 100755
index 0000000..a466277
--- /dev/null
+++ b/tests/letter_compress_test.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+import random
+import math
+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)()