From: Neil Smith <neil.git@njae.me.uk>
Date: Mon, 18 Nov 2013 14:40:09 +0000 (+0000)
Subject: Column transposition working, needs more tests
X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=f26a7febfe937c66babfe403289c8463e2fdfc88;hp=662ec32b20167247570c74e537cdb1b4fee28c7a;p=cipher-tools.git

Column transposition working, needs more tests
---

diff --git a/cipher.py b/cipher.py
index d857e04..7d3ba78 100644
--- a/cipher.py
+++ b/cipher.py
@@ -420,6 +420,10 @@ def scytale_decipher(message, rows):
 
 
 def transpositions_of(keyword):
+    """
+    >>> transpositions_of('clever')
+    [0, 2, 1, 4, 3]
+    """
     transpositions = []
     key = deduplicate(keyword)
     for l in sorted(key):
@@ -427,10 +431,25 @@ def transpositions_of(keyword):
     return transpositions
 
 def column_transposition_encipher(message, keyword):
+    """
+    >>> column_transposition_encipher('hellothere', 'clever')
+    'hleolteher'
+    """
     transpositions = transpositions_of(keyword)
-    rows = every_nth(message, len(transpositions), fillvalue=' ')
-    transposed_rows = [transpose(row, transpositions) for row in rows]
-    return combine_every_nth(transposed_rows)
+    columns = every_nth(message, len(transpositions), fillvalue=' ')
+    transposed_columns = transpose(columns, transpositions)
+    return combine_every_nth(transposed_columns)
+
+def column_transposition_decipher(message, keyword):
+    """
+    >>> column_transposition_decipher('hleolteher', 'clever')
+    'hellothere'
+    """
+    transpositions = transpositions_of(keyword)
+    columns = every_nth(message, len(transpositions), fillvalue=' ')
+    transposed_columns = untranspose(columns, transpositions)
+    return combine_every_nth(transposed_columns)
+
 
 
 def caesar_break(message,