예제 #1
0
def test_cifra_de_cesar_apenas_letras_texto_grande_2():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['7'],
        'Bom dia, Boa tarde, Boa noite!') == 'Ivt kph, Ivh ahykl, Ivh uvpal!'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(
        ['7'],
        'Ivt kph, Ivh ahykl, Ivh uvpal!') == 'Bom dia, Boa tarde, Boa noite!'
예제 #2
0
def apenas_letras(
    mensagem
):  # Testa as 26 chaves possiveis da cifra de cesar em uma determinada mensagem.
    if not mensagem:
        return False
    lista_mensagens_possiveis = []
    for chave in range(1, 27):
        mensagem_traduzida = cifra_de_cesar.traduzir_modo_apenas_letras(
            [str(chave)], mensagem)
        lista_mensagens_possiveis.append(mensagem_traduzida)
    return lista_mensagens_possiveis
예제 #3
0
def adivinhar_cesar_apenas_letras(mensagem, idioma_teste=''):
    if not mensagem:
        return False
    lista_mensagens = []
    lista_pontuacoes = []
    for chave in range(1, 27):
        nova_mensagem = cifra_de_cesar.traduzir_modo_apenas_letras(
            [str(chave)], mensagem)
        lista_mensagens.append(nova_mensagem)
        lista_pontuacoes.append(
            calcula_pontuacao(nova_mensagem.lower(),
                              idioma_a_testar=idioma_teste))
    index_melhor_possibilidade = lista_pontuacoes.index(min(lista_pontuacoes))
    return [
        lista_mensagens[index_melhor_possibilidade],
        index_melhor_possibilidade + 1
    ]
예제 #4
0
def test_cifra_de_cesar_apenas_letras_chave_maior():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(['10'], 'az') == 'kj'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(['10'], 'kj') == 'az'
예제 #5
0
def test_cifra_de_cesar_apenas_letras_texto_grande_1():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['1'], 'abcdefghijklmnopqrstuvwxyz') == 'bcdefghijklmnopqrstuvwxyza'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(
        ['1'], 'bcdefghijklmnopqrstuvwxyza') == 'abcdefghijklmnopqrstuvwxyz'
예제 #6
0
def test_cifra_de_cesar_apenas_letras_maiusc_minusc():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['1'], 'aAbBcCdD') == 'bBcCdDeE'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(['1'],
                                                      'bBcCdDeE') == 'aAbBcCdD'
예제 #7
0
def test_cifra_de_cesar_apenas_letras_caracteres_especiais():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['1'], 'áéíóú!? aeiou') == 'áéíóú!? bfjpv'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(
        ['1'], 'áéíóú!? bfjpv') == 'áéíóú!? aeiou'
예제 #8
0
def test_cifra_de_cesar_apenas_letras_chave_1():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(['1'], 'abc') == 'bcd'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(['1'], 'bcd') == 'abc'
예제 #9
0
def test_cifra_de_cesar_apenas_letras_volta_alfabeto():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(['1'], 'z') == 'a'
    assert cifra_de_cesar.traduzir_modo_apenas_letras(['1'], 'a') == 'z'
예제 #10
0
def test_cifra_de_cesar_apenas_letras_mensagem_invalida():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['1'], '') == dicionarios.retorna_erro_mensagem()
    assert cifra_de_cesar.traduzir_modo_apenas_letras(
        ['1'], '') == dicionarios.retorna_erro_mensagem()
예제 #11
0
def test_cifra_de_cesar_apenas_letras_chave_invalida_float():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['1.2'], 'a') == dicionarios.retorna_erro_chave()
    assert cifra_de_cesar.traduzir_modo_apenas_letras(
        ['2.4'], 'a') == dicionarios.retorna_erro_chave()
예제 #12
0
def test_cifra_de_cesar_apenas_letras_chave_invalida_negativa():
    assert cifra_de_cesar.encriptar_modo_apenas_letras(
        ['-1'], 'a') == dicionarios.retorna_erro_chave()
    assert cifra_de_cesar.traduzir_modo_apenas_letras(
        ['-1'], 'a') == dicionarios.retorna_erro_chave()