diff --git a/exercicios/para-casa/__pycache__/average.cpython-311.pyc b/exercicios/para-casa/__pycache__/average.cpython-311.pyc new file mode 100644 index 0000000..f26a2a2 Binary files /dev/null and b/exercicios/para-casa/__pycache__/average.cpython-311.pyc differ diff --git a/exercicios/para-casa/average.py b/exercicios/para-casa/average.py new file mode 100644 index 0000000..5ecc52f --- /dev/null +++ b/exercicios/para-casa/average.py @@ -0,0 +1,20 @@ +def calcular_media(numeros): + if not numeros: + return None + + return sum(numeros)/len(numeros) + + +def main(): + numeros = [] + + while True: + try: + numero = float(input("Digite um número para calcular a média. Se não tiver mais números, digite S\n")) + numeros.append(numero) + except(ValueError): + break + print(f"A média é: {calcular_media(numeros)}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercicios/para-casa/average_test.py b/exercicios/para-casa/average_test.py new file mode 100644 index 0000000..bab57b2 --- /dev/null +++ b/exercicios/para-casa/average_test.py @@ -0,0 +1,49 @@ +''' +1. Faça um arquivo contendo todos os cenários de teste mapeados por você, com descrição e resultado esperado (entrega em formato PDF) +2. Faça um Arquivo python calculando a média de uma lista de números +3. Faça um arquivo de teste, que contenha todos os testes mapeados por você (passo 1), para testar o arquivo python que você calculou as médias + +Testa se lista vazia +Testa todos os números são iguais +Testa todos os números iguais a zero +Testa números negativos +Testa números negativos e positivos +Testa números float +''' + +import unittest +from average import calcular_media + +class TestCalcularMedia(unittest.TestCase): +#Testa se lista vazia + def test_media_lista_vazia(self): + resultado = calcular_media([]) + self.assertEqual(resultado, None) + +#Testa todos os números são iguais + def test_media_lista_igual(self): + self.assertEqual(calcular_media([5, 5, 5]), 5) + +#Testa todos os números iguais a zero + def test_media_lista_zeros(self): + self.assertEqual(calcular_media([0, 0, 0]), 0) + +#Testa números negativos + def test_media_lista_negativos(self): + self.assertEqual(calcular_media([-5, -4, -3]), -4) + +#Testa números negativos e positivos + def test_media_lista_neg_pos(self): + self.assertEqual(calcular_media([-5, 0, 5]), 0) + +#Testa números float + def test_media_lista_float(self): + self.assertEqual(calcular_media([5.5, 6.5, 7.5]), 6.5) + +#Testa erro de tipo de dado + def test_media_tipo(self): + with self.assertRaises(TypeError): + calcular_media("a", "b") + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/exercicios/para-sala/calc_teste.py b/exercicios/para-sala/calc_teste.py new file mode 100644 index 0000000..495dab5 --- /dev/null +++ b/exercicios/para-sala/calc_teste.py @@ -0,0 +1,63 @@ + +def soma(a, b): + return a + b + +def subtracao(a, b): + return a - b + +def multiplicacao(a, b): + return a * b + +def divisao(a, b): + return a / b + +import unittest + +class TestSoma(unittest.TestCase): + def test_soma_positivos(self): + self.assertEqual(soma(2, 3), 5) + + def test_soma_negativos(self): + self.assertEqual(soma(-5, -3), -8) + + def test_soma_zero(self): + self.assertEqual(soma(0, 0), 0) + +class TestSubtracao(unittest.TestCase): + def test_subtracao_positivos(self): + self.assertEqual(subtracao(3, 2), 1) + self.assertEqual(subtracao(2, 3), -1) + + def test_subracao_negativos(self): + self.assertEqual(subtracao(-2, -3), 1) + self.assertEqual(subtracao(-3, -2), -1) + + def test_subracao_zero(self): + self.assertEqual(subtracao(0, 0), 0) + +class TestMultiplicacao(unittest.TestCase): + def test_multiplicacao_positivos(self): + self.assertEqual(multiplicacao(3, 2), 6) + + def test_multiplicacao_negativos(self): + self.assertEqual(multiplicacao(-3, -2), 6) + self.assertEqual(multiplicacao(-3, 2), -6) + + def test_multiplicacao_zero(self): + self.assertEqual(multiplicacao(0, 0), 0) + self.assertEqual(multiplicacao(0, 3), 0) + +class TestDivisao(unittest.TestCase): + def test_divisao_positivos(self): + self.assertEqual(divisao(10, 2), 5) + + def test_divisao_negativos(self): + self.assertEqual(divisao(-10, 2), -5) + + def test_divisao_zero(self): + self.assertEqual(divisao(0, 3), 0) + with self.assertRaises(ZeroDivisionError): + divisao(5, 0) + +if __name__ == "__main__": + unittest.main() \ No newline at end of file