summaryrefslogtreecommitdiff
path: root/letter_compress.py
diff options
context:
space:
mode:
Diffstat (limited to 'letter_compress.py')
-rw-r--r--letter_compress.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/letter_compress.py b/letter_compress.py
index 4374edd..378ecbc 100644
--- a/letter_compress.py
+++ b/letter_compress.py
@@ -4,7 +4,6 @@ import bitstring
from collect.bidict import bidict
-
special_characters = bidict(
{
' ': 27,
@@ -26,6 +25,12 @@ def compress(uncompressed: str) -> bytes:
>>> binascii.hexlify(compress('this is a test'))
b'a2133da67b0ee859d0'
+ >>> binascii.hexlify(compress('scot'))
+ b'98df40'
+
+ >>> binascii.hexlify(compress('scott'))
+ b'98df4a00'
+
"""
compressed = bitstring.BitArray()
for (n, letter) in enumerate(uncompressed):
@@ -50,11 +55,15 @@ def decompress(kompressed: bytes) -> str:
>>> 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: