def test_ler_entrada(self): """ Testa cenário de entrada correta (usuário digita valores válidos de arremessos). :return: None """ ap = ArremessoPeso(inp=MockInput("1.0,2.0,3.0")) self.assertEqual(ap.lerentrada(numadversario="1"), '1.0,2.0,3.0', "Esperada string '1.0,2.0,3.0'")
def test_lerentrada_modalidade_arremesso_peso(self): """ Testa cenário do caminho feliz (usuário digita modalidade existente). :return: None """ menu = Menu(MockInput(ID_MODALIDADE_ARREMESSOPESO)) menu.lerentrada() self.assertEqual(menu.validarmodalidade(), True, "Esperado resultado 'True'")
def test_validar_entrada_invalida(self): """ Testa cenário de entrada incorreta (usuário digita valores de arremessos inválidos). :return: None """ ap = ArremessoPeso(inp=MockInput("1.0,invalido,3.0")) ret = ap.validarentrada(entrada=ap.lerentrada(numadversario="1")) self.assertEqual(ret, False, "Função deveria ter retornado False")
def test_lerentrada_modalidade_inexistente_texto_a_mais(self): """ Testa cenário de erro de entrada (usuário digita texto a mais). :return: None """ menu = Menu(MockInput("123deOliveira4")) menu.lerentrada() self.assertEqual(menu.validarmodalidade(), False, "Esperado resultado 'False'")
def test_lerentrada_modalidade_inexistente_espacos(self): """ Testa cenário de erro de entrada (usuário digita espaços). :return: None """ menu = Menu(MockInput("1 ")) menu.lerentrada() self.assertEqual(menu.validarmodalidade(), False, "Esperado resultado 'False'")
def test_validar_entrada_notas_a_mais(self): """ Testa cenário de entrada incorreta (usuário digita valores de notas a mais que o esperado). :return: None """ ap = GinasticaArtistica(inp=MockInput("1.0,2.0,3.0,4.0,5.0,6.0")) ret = ap.validarentrada(entrada=ap.lerentrada(numadversario="1")) self.assertEqual(ret, False, "Função deveria ter retornado False")
def test_validar_entrada_valida(self): """ Testa cenário de entrada correta (usuário digita valores válidos de notas). :return: None """ ap = GinasticaArtistica(inp=MockInput("1.0,2.0,3.0,4.0,5.0")) ret = ap.validarentrada(entrada=ap.lerentrada(numadversario="1")) self.assertEqual(ret, True, "Função deveria ter retornado True")
def test_lerentrada_modalidade_ginastica_artistica(self): """ Testa cenário do caminho feliz (usuário digita modalidade existente). :return: None """ menu = Menu(MockInput(ID_MODALIDADE_GINASTICAARTISTICA)) menu.lerentrada() self.assertEqual(menu.validarmodalidade(), True, "Esperado resultado 'True'")
def test_ler_entrada(self): """ Testa cenário de entrada correta (usuário digita valores válidos de notas). :return: None """ ap = GinasticaArtistica(inp=MockInput("1.0,2.0,3.0,4.0,5.0")) self.assertEqual(ap.lerentrada(numadversario="1"), '1.0,2.0,3.0,4.0,5.0', "Esperada string '1.0,2.0,3.0,4.0,5.0'")
def test_numero_adversarios(self): """ Testa cenário de número de adversários incorreto (houve alguma confusão na chamada das funções da modalidade pela classe Menu). :return: None """ ap = ArremessoPeso(inp=MockInput("")) self.assertEqual( ap.numeroadversarios(), ARREMESSO_NUMERO_ADVERSARIOS, "Função deveria ter retornado {} adversarios".format( ARREMESSO_NUMERO_ADVERSARIOS))
def test_validar_empate_simples(self): """ Testa cenário de empate na competição (melhores arremessos iguais). :return: None """ ap = ArremessoPeso(inp=MockInput("")) ap._adversarios = [ AdversarioArremessoPeso(nome="Adversario 1", resultado=[1.0, 2.0, 3.0]), AdversarioArremessoPeso(nome="Adversario 2", resultado=[1.0, 2.0, 3.0]) ] ap.iniciar() self.assertEqual(ap.vencedor(), "Empate", "Deveria haver um empate.")
def test_validar_empate_simples_2(self): """ Testa cenário de empate na competição (média igual de notas). :return: None """ ap = GinasticaArtistica(inp=MockInput("")) ap._adversarios = [ AdversarioGinasticaArtistica(nome="Adversario 1", resultado=[1.0, 3.0, 3.0, 8.0, 10.0]), AdversarioGinasticaArtistica(nome="Adversario 2", resultado=[1.0, 3.0, 6.0, 10.0, 5.0]) ] ap.iniciar() self.assertEqual(ap.vencedor(), "Empate", "Deveria haver um empate.")
def test_validar_desempate_simples_vencedor_1(self): """ Testa cenário de vencedor na competição (adversário #1). :return: None """ ap = ArremessoPeso(inp=MockInput("")) ap._adversarios = [ AdversarioArremessoPeso(nome="Adversario 1", resultado=[1.0, 2.0, 4.0]), AdversarioArremessoPeso(nome="Adversario 2", resultado=[1.0, 2.0, 3.0]) ] ap.iniciar() self.assertEqual(ap.vencedor(), "Adversario 1", "Adversario 1 deveria ser o vencedor.")
def test_validar_desempate_elimina_pior_nota_vencedor_2(self): """ Testa cenário de vencedor na competição (adversário #2). :return: None """ ap = GinasticaArtistica(inp=MockInput("")) ap._adversarios = [ AdversarioGinasticaArtistica(nome="Adversario 1", resultado=[4.0, 4.0, 4.0, 4.0, 10.0]), AdversarioGinasticaArtistica(nome="Adversario 2", resultado=[0.0, 4.0, 4.0, 6.0, 9.0]) ] ap.iniciar() self.assertEqual(ap.vencedor(), "Adversario 2", "Adversario 2 deveria ser o vencedor.")
def test_menu_instancia_dinamica_arremesso_peso(self): """ Testa cenário do caminho feliz (valida o retorno de uma instância da classe ArremessoPeso). :return: None """ _input = MockInput(ID_MODALIDADE_ARREMESSOPESO) menu = Menu(_input) menu.lerentrada() menu.validarmodalidade() self.assertEqual( str(menu.modalidade(_input).__class__), "<class 'ooppython3.modalidadearremessopeso.Arremess" "oPeso'>", "Esperada classe <class 'ooppython3.modalidadearreme" "ssopeso.ArremessoPeso'>")
def test_menu_instancia_dinamica_ginastica_artistica(self): """ Testa cenário do caminho feliz (valida o retorno de uma instância da classe GinasticaArtistica). :return: None """ _input = MockInput(ID_MODALIDADE_GINASTICAARTISTICA) menu = Menu(_input) menu.lerentrada() menu.validarmodalidade() self.assertEqual( str(menu.modalidade(_input).__class__), "<class 'ooppython3.modalidadeginasticaartistica.Gin" "asticaArtistica'>", "Esperada classe <class 'ooppython3.modalidadeginast" "icaartistica.GinasticaArtistica'>")
def test_validar_desempate_segunda_melhor_marca_vencedor_2(self): """ Testa cenário de desempate na competição (segundos melhores arremessos dos adversários). :return: None """ ap = ArremessoPeso(inp=MockInput("")) ap._adversarios = [ AdversarioArremessoPeso(nome="Adversario 1", resultado=[1.0, 1.0, 3.0]), AdversarioArremessoPeso(nome="Adversario 2", resultado=[1.0, 2.0, 3.0]) ] ap.iniciar() self.assertEqual(ap.vencedor(), "Adversario 2", "Adversario 2 deveria ser o vencedor.")
def test_inicializacao_superclasse(self): """ Testa os parâmetros do construtor da classe. :return: None """ inp = MockInput("1.0,2.0,3.0") ap = Modalidade(inp=inp, numtentativas=1000, numadversarios=500, mensagem="Can't touch this") self.assertEqual(ap.adversarios(), [], "Esperada lista vazia [].") self.assertEqual(ap.numerotentativas(), 1000, "Esperadas 1000 tentativas.") self.assertEqual(ap.numeroadversarios(), 500, "Esperados 500 adversários.") self.assertEqual(ap._mensagem, "Can't touch this", "Esperada mensagem 'Can't touch this'.")