-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_ciphers.py
38 lines (28 loc) · 2.35 KB
/
test_ciphers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
''' file to test all ciphers
ensure that they can all handle uppercase,
lowercase, spaces, numbers, & special characters
'''
import ciphers
# Atbash
def testAtbash():
# a -> z
assert ciphers.atbashEncodeDecode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`") == "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`"
# z -> a
assert ciphers.atbashEncodeDecode("ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`") == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`"
# Caesar
def testCaesar():
# encode shift of 13
assert ciphers.caesarEncodeDecode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !#'$%&()[]{}*+=-_,./|:;<>?@^~`", 1, 13) == "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm1234567890 !#'$%&()[]{}*+=-_,./|:;<>?@^~`"
# decode shift of 1
assert ciphers.caesarEncodeDecode("BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza1234567890 !#'$%&()[]{}*+=-_,./|:;<>?@^~`", 2, 1) == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !#'$%&()[]{}*+=-_,./|:;<>?@^~`"
# Affine
def testAffine():
# encode slope 3 intercept 20
assert ciphers.affineEncodeDecode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`", 1, (3, 20)) == "UXADGJMPSVYBEHKNQTWZCFILORuxadgjmpsvybehknqtwzcfilor1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`"
# decode slope 7 intercept 2
assert ciphers.affineEncodeDecode("CJQXELSZGNUBIPWDKRYFMTAHOVcjqxelszgnubipwdkryfmtahov1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`", 2, (7, 2)) == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`"
# Viginere
def testViginere():
# key = "parosomniac"
assert ciphers.viginereEncodeDecode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`", 1, "parosomniac") == "PBTRWTSUQJMAMECHEDFBUXLXPNspoqmfiwiaydazbxqthtljolkm1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`"
assert ciphers.viginereEncodeDecode("PBTRWTSUQJMAMECHEDFBUXLXPNspoqmfiwiaydazbxqthtljolkm1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`", 2, "parosomniac") == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !\"#'$%&()[]{}*+=-_,./|:;<>?@^~`"