Various changes
[python_utils.git] / letter_compress.py
index 01d40f9ed636275cb2c3727d79e4a61db67f941d..378ecbcbf433f02c006a21633110e7f0b397dea0 100644 (file)
@@ -2,10 +2,9 @@
 
 import bitstring
 
-import bidict
+from collect.bidict import bidict
 
-
-special_characters = bidict.bidict(
+special_characters = bidict(
     {
         ' ': 27,
         '.': 28,
@@ -24,7 +23,13 @@ def compress(uncompressed: str) -> bytes:
 
     >>> import binascii
     >>> binascii.hexlify(compress('this is a test'))
-    b'99d12d225a06a6494c'
+    b'a2133da67b0ee859d0'
+
+    >>> binascii.hexlify(compress('scot'))
+    b'98df40'
+
+    >>> binascii.hexlify(compress('scott'))
+    b'98df4a00'
 
     """
     compressed = bitstring.BitArray()
@@ -47,14 +52,18 @@ def decompress(kompressed: bytes) -> str:
     its original form.
 
     >>> import binascii
-    >>> decompress(binascii.unhexlify(b'99d12d225a06a6494c'))
+    >>> decompress(binascii.unhexlify(b'a2133da67b0ee859d0'))
     'this is a test'
 
+    >>> decompress(binascii.unhexlify(b'98df4a00'))
+    'scott'
+
     """
     decompressed = ''
     compressed = bitstring.BitArray(kompressed)
     for chunk in compressed.cut(5):
         chunk = chunk.uint
+        print(f'0x{chunk:x}')
         if chunk == 0:
             break
         elif 1 <= chunk <= 26: