def test_acerta_todas(self): for suspeito in xrange(1, 7): for local in xrange(1, 11): for arma in xrange(1, 7): real = (suspeito, local, arma) detetive = Detetive() retorno = detetive.proximo_chute() resultado = assassino(retorno, real) while resultado != 0: retorno = detetive.proximo_chute(resultado) resultado = assassino(retorno, real) self.assertEqual(retorno, real)
def test_erra_suspeito_e_arma_aleatorio(self): retorno = [assassino(acho_que=(1, 1, 1), real=(2, 1, 2)) for _ in xrange(10)] self.assertFalse(reduce(lambda a, b: a == b and a, retorno))
def test_tres_pessoas_pessoa_tres_fica_viva_passo_2(self): self.assertEqual(assassino(3, 2), 3)
def test_errou_tudo_de_cara(self): retorno = assassino(acho_que=(1, 1, 1), real=(2, 2, 2)) esperado = (1, 2, 3) self.assertTrue(retorno, esperado)
def test_errou_tudo_de_cara_aleatorio(self): retorno = [ assassino(acho_que=(1, 1, 1), real=(2, 2, 2)) for _ in xrange(10) ] self.assertFalse(reduce(lambda a, b: a == b and a, retorno))
def test_erra_suspeito(self): retorno = assassino(acho_que=(2, 1, 1), real=(1, 1, 1)) esperado = 1 self.assertEqual(retorno, esperado)
def test_uma_pessoa_pessoa_um_fica_viva_passo_1(self): self.assertEqual(assassino(1, 1), 1)
def test_duas_pessoas_pessoa_dois_fica_viva_passo_1(self): self.assertEqual(assassino(2, 1), 2)
def test_quatro_pessoas_pessoa_tres_fica_viva_passo_3(self): self.assertEqual(assassino(4, 3), 3)
def test_nenhuma_pessoa_fica_viva_com_0_pessoas(self): self.assertEqual(assassino(0, 1), 0)
def test_errou_tudo_de_cara_aleatorio(self): retorno = [assassino(acho_que=(1, 1, 1), real=(2, 2, 2)) for _ in xrange(10)] self.assertFalse(reduce(lambda a, b: a == b and a, retorno))
def test_erra_local(self): retorno = assassino(acho_que=(1, 2, 1), real=(1, 1, 1)) esperado = 2 self.assertEqual(retorno, esperado)
def test_acertou_tudo_de_cara(self): retorno = assassino(acho_que=(1, 1, 1), real=(1, 1, 1)) esperado = 0 self.assertEqual(retorno, esperado)
def test_erra_suspeito_e_local(self): retorno = assassino(acho_que=(1, 1, 1), real=(2, 2, 1)) esperado = (1, 2) self.assertTrue(retorno in esperado)
def test_erra_arma(self): retorno = assassino(acho_que=(1, 1, 1), real=(1, 1, 2)) esperado = 3 self.assertEqual(retorno, esperado)
def test_erra_local_e_arma(self): retorno = assassino(acho_que=(1, 1, 1), real=(1, 2, 2)) esperado = (2, 3) self.assertTrue(retorno in esperado)
def test_erra_suspeito_e_arma_aleatorio(self): retorno = [ assassino(acho_que=(1, 1, 1), real=(2, 1, 2)) for _ in xrange(10) ] self.assertFalse(reduce(lambda a, b: a == b and a, retorno))