def test_decipher(self): ''' AffineSubstitution (test_decipher): test known ciphertext->plaintext pairs ''' text = 'pmjgdaxurolifczwtqnkhebyvspmjgdaxurolifczwtqnkhebyvs' declist = ['yfmtahovcjqxelszgnubipwdkryfmtahovcjqxelszgnubipwdkr', 'onmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqp', 'jarizqhypgxofwnevmdulctkbsjarizqhypgxofwnevmdulctkbs', 'pmjgdaxurolifczwtqnkhebyvspmjgdaxurolifczwtqnkhebyvs', 'tmfyrkdwpibungzslexqjcvohatmfyrkdwpibungzslexqjcvoha', 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'] for i,key in enumerate(((7,3),(3,25),(9,12),(1,0),(19,18),(23,15))): a,b = key dec = AffineSubstitution(a,b).decipher(text) self.assertEqual(dec.upper(), declist[i].upper())
def test_encipher(self): ''' AffineSubstitution (test_encipher): test known plaintext->ciphertext pairs ''' text = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' enclist = ['hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg', 'dgjmpsvybehknqtwzcfiloruxadgjmpsvybehknqtwzcfiloruxa', 'afkpuzejotydinsxchmrwbglqvafkpuzejotydinsxchmrwbglqv', 'ovcjqxelszgnubipwdkryfmtahovcjqxelszgnubipwdkryfmtah', 'sbktcludmvenwfoxgpyhqzirajsbktcludmvenwfoxgpyhqziraj', 'pmjgdaxurolifczwtqnkhebyvspmjgdaxurolifczwtqnkhebyvs'] for i,key in enumerate(((1,7),(3,3),(5,0),(7,14),(9,18),(23,15))): a,b = key enc = AffineSubstitution(a,b).encipher(text) self.assertEqual(enc.upper(), enclist[i].upper())