def setUp(self): self.analyzer = FrequencyAnalyzer(VigenereCipher(), ascii_uppercase) self.analyzer.message = removeTextNonLetters("Ppqca xqvekg ybnkmazu ybngbal jon i tszm jyim. Vrag voht vrau c tksg. Ddwuo xitlazu vavv raz c vkb qp iwpou.") self.analyzer.key_length = 4 self.subkey_messages = ['PAEBABANZIAHAKDXAAAKIU', 'PXKNZNLIMMGTUSWIZVZBW', 'QQGKUGJTJVVVCGUTUVCQP', 'CVYMYBOSYRORTDOLVRVPO'] self.subkey_score = [('A', 2), ('I', 2), ('N', 2), ('W', 2), ('X', 2), ('B', 1), ('C', 1), ('E', 1), ('G', 1), ('H', 1), ('K', 1), ('M', 1), ('O', 1), ('P', 1), ('R', 1), ('S', 1), ('T', 1), ('U', 1), ('V', 1), ('D', 0), ('F', 0), ('J', 0), ('L', 0), ('Q', 0), ('Y', 0), ('Z', 0)]
def setUp(self): self.message = removeTextNonLetters("Ppqca xqvekg ybnkmazu ybngbal jon i tszm jyim. Vrag voht vrau c tksg. Ddwuo xitlazu vavv raz c vkb qp iwpou.") self.seq_spacings = {'AZU': [48], 'VRA': [8, 32, 24], 'YBN': [8]} self.seq_factors = { 'AZU': [2, 3, 4, 6, 8, 12, 16], 'VRA': [8, 2, 4, 8, 16, 2, 4, 2, 3, 4, 6, 8, 12], 'YBN': [8, 2, 4]} self.factor_counts = Counter({2: 5, 4: 5, 8: 5, 16: 2, 3: 2, 6: 2, 12: 2})
def test_kasiskiExamination_text(self): with open('data/book_ciphertext.txt') as f: ciphertext = removeTextNonLetters(f.read()) self.assertEqual(kasiskiExamination(ciphertext), self.likely_key_lengths)