def test_strencode_decode_exaustive(self): '''Evil test''' all_chr = [chr(i) for i in range(256)] many_chr = all_chr * 4 + list(' ') * 32 random.shuffle(many_chr) phrase = "".join(many_chr) expected_decode = morse.removeunusablecharacters(phrase).lower() encoded = morse.encode(phrase) decoded = morse.decode(encoded) self.assertEqual(expected_decode, decoded.lower())
def decode(ciphertext, key): morsestring = "" for i in range(len(ciphertext)): if ciphertext[i] in key['dots']: morsestring += "." if ciphertext[i] in key['dashes']: morsestring += "-" if ciphertext[i] in key['breaks']: morsestring += " " return morse.decode(morsestring)
def test_t(self): self.assertEqual(decode("-"), "T")
def test_p(self): self.assertEqual(decode(".--."), "P")
def test_r(self): self.assertEqual(decode(".-."), "R")
def test_k(self): self.assertEqual(decode("-.-"), "K")
from morse import code, decode mode = input('Choose-> Code: 0, Decode: 1\n') if mode == '0': text = input('Podaj text: ') print(code(text)) elif mode == '1': print('Oddziel znaki spacja, a słowa tabem.\n') text = input('Podaj text: ') print(decode(text)) else: print('Try again.')
def test_g(self): self.assertEqual(decode("--."), "G")
def test_i(self): self.assertEqual(decode(".."), "I")
def test_y(self): self.assertEqual(decode("-.--"), "Y")
def test_z(self): self.assertEqual(decode("--.."), "Z")
def test_x(self): self.assertEqual(decode("-..-"), "X")
def test_a(self): self.assertEqual(decode(".-"), "A")
def test_w(self): self.assertEqual(decode(".--"), "W")
def test_v(self): self.assertEqual(decode("...-"), "V")
def test_u(self): self.assertEqual(decode("..-"), "U")
def test_sos_decode(self): assert decode(self.morse_sos) == 'SOS'
def test_sos(self): self.assertEqual(decode("... --- ..."), "SOS")
def test_f(self): self.assertEqual(decode("..-."), "F")
def test_encode(self): '''Test encoding and decoding of normal charaters''' phrase = "The quick red fox jumped over the lazy dog 1234567890" encoded = morse.encode(phrase) decoded = morse.decode(encoded) self.assertEqual(phrase.lower(), decoded.lower())
def test_h(self): self.assertEqual(decode("...."), "H")
def test_l(self): self.assertEqual(decode(".-.."), "L")
def test_j(self): self.assertEqual(decode(".---"), "J")
def test_n(self): self.assertEqual(decode("-."), "N")
def test_empty_message(self): self.assertEqual(decode(""), "")
from morse import decode # See challenge_1.png # (r)ed, (g)reen notes cyphertext = """ rgg g gr grg ggg gr rg r gr r gg\ gg g ggg g rgrg gr\ g g r rgrg rrr r\ gg g gg ggg g gggg\ r rggr gggr gr rgg rrr r \ ggr rgrg rggr grg ggggr g\ grg grg rrr rr rr grg rr rrr \ grg ggg g\ """.replace('r', '-').replace('g', '.') print decode(cyphertext.strip()) # DEARSANTATHESECRETCODEISE4XVADOTUCXR4FROMMRMORSE # DEAR SANTA, THE SECRET CODE IS: E4XVA.UCXR4 FROM MR MORSE # https://cybersecuritychallenge.org.uk/E4XVA.UCXR4/
def test_m(self): self.assertEqual(decode("--"), "M")
def test_decode(s, exp): assert morse.decode(s) == exp
def test_o(self): self.assertEqual(decode("---"), "O")
def test_b(self): self.assertEqual(decode("-..."), "B")
def test_q(self): self.assertEqual(decode("--.-"), "Q")
def test_c(self): self.assertEqual(decode("-.-."), "C")
def test_s(self): self.assertEqual(decode("..."), "S")
def test_d(self): self.assertEqual(decode("-.."), "D")
def test_e(self): self.assertEqual(decode("."), "E")
def test_words_decode(self): assert decode(self.morse_12_23) == '12 34'