diff --git a/exercicios/para-casa/calculadora-exercicio-segunda.py b/exercicios/para-casa/calculadora-exercicio-segunda.py new file mode 100644 index 0000000..a16fe47 --- /dev/null +++ b/exercicios/para-casa/calculadora-exercicio-segunda.py @@ -0,0 +1,86 @@ + +## atividade casa fazer as operçãoe sfaltantes (bub, mult, div) +def soma(a,b): + return a + b + + +def sub(a,b): + return a - b + +def mult(a,b): + return a * b + +def div(a,b): + if b == 0: + # Lidar com o caso de divisão por zero + return "indefinido" + 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(-3,-3), -6) + + def test_soma_zeros(self): + self.assertEqual (soma(0,0), 0) + + def test_soma_positivos_negativos(self): + self.assertEqual (soma(-4,2),-2 ) ## assertEquel é um metodo da classe + + + + +class TestSub(unittest.TestCase): + def test_sub_positivos(self): + self.assertEqual (sub(3,2), 1) + + def test_sub_negativos(self): + self.assertEqual (sub(-3,-3), 0) + + def test_sub_zeros(self): + self.assertEqual (sub(0,0), 0) + + def test_sub_positivos_negativos(self): + self.assertEqual (sub(-4,2),-6 ) ## assertEquel é um metodo da classe + + +class TestMult(unittest.TestCase): + def test_mult_positivos(self): + self.assertEqual (mult(3,2), 6) + + def test_mult_negativos(self): + self.assertEqual (mult(-3,-3), 9) + + def test_mult_zeros(self): + self.assertEqual (mult(0,0), 0) + + def test_mult_positivos_negativos(self): + self.assertEqual (mult(-4,2),-8 ) ## assertEquel é um metodo da classe + + + +class TestDiv(unittest.TestCase): + def test_div_positivos(self): + self.assertEqual (div(4,2), 2) + + def test_div_negativos(self): + self.assertEqual (div(-6,-3), 2) + + def test_div_zeros(self): + self.assertEqual (div(0,0),"indefinido") + + def test_div_positivos_negativos(self): + self.assertEqual (div(-8,2),-4 ) + + + + +if __name__=='__main__': + unittest.main() + diff --git a/exercicios/para-casa/calculo_media.py b/exercicios/para-casa/calculo_media.py new file mode 100644 index 0000000..be2bedb --- /dev/null +++ b/exercicios/para-casa/calculo_media.py @@ -0,0 +1,16 @@ +"""def calcular_media(numeros): + if not numeros: + return None + return sum (numeros)/ len(numeros) +""" + +def calcular_media(numeros): + numeros_validos = [x for x in numeros if isinstance(x, (int, float))] + if not numeros_validos: + return None + return sum(numeros_validos) / len(numeros_validos) + + + + + \ No newline at end of file diff --git a/exercicios/para-casa/teste_ca.lculo_media.py b/exercicios/para-casa/teste_ca.lculo_media.py new file mode 100644 index 0000000..3371c36 --- /dev/null +++ b/exercicios/para-casa/teste_ca.lculo_media.py @@ -0,0 +1,91 @@ +"""Questão 1- + Testes hipotéticos para calcular Média: + 1- media da lista vazia - se a lista estivar vazia retorne 0 + 2 - media divisão por zero - se a soma da media der zero retorna uma media = 0 + 3 - numeros negativos - a soma dos numero negativa a média retorna uma media megativo + 4 - numeros positivos - a soma dos numeros positivos <= 10 retorna umamedia posiviva <=10 + 5 - numeros maiores que 10 - a soma dos numeros retorna uma media > 10 + 6 - numeros iguais - a soma dos numeros iguais retorna uma media = e ele mesmo + 7 - numeros positivos e negativos intercalados = a soma dos numeros retorna uma media negativo + 8 - numeros reais positivos - a somo dos numeros fracionariospositivos retorna uma media fracionaria positiva + 9 - um unico numero - o unico numero retorna uma media = a esse numero unico + 10 - valores não numeris - a soma dos valores não numericos retorna uma média nula(None) + para realizar esse ultimo modifiquei o função proposta aqui inicialmente + def calcular_media(numeros): + if not numeros: + return None + return sum (numeros)/ len(numeros) + """ + + +# Quetão 2 +import unittest +import math + +from calculo_media import calcular_media + + +class TestCalcularmedia(unittest.TestCase): + def test_media_lista_vazia(self): + resultado = calcular_media([]) + self.assertEqual(resultado,None) + + def test_media_divisao_por_zero(self): + resultado = calcular_media([0, 0, 0]) + self.assertEqual (resultado, 0) + + + def test_media_numero_negativo(self): + resultado = calcular_media([-2, -3, -1]) + self.assertEqual (resultado, -2.0) + + + def test_media_numero_positivo_menor_ou_igual_10 (self): + resultado = calcular_media([5, 9, 6, 4]) + self.assertEqual(resultado,6.0 ) + + + def test_media_numero_maior_que_10(self): + resultado = calcular_media([13, 15, 19,11,10]) + + self.assertGreater (resultado, 10) # verifica se a media é menor uq 10 + + + def test_media_numeros_iguais(self): + resultado = calcular_media([2,2,2,2,2]) + + self.assertEqual(resultado, 2.0) + + + def test_media_positivos_negativos_intercalados(self): + resultado = calcular_media([-3, 5, -9,1,-8]) + + self.assertLessEqual(resultado, -2.8) + + + def test_media_reais_positivos(self): + resultado = calcular_media([3.4, 5.8, 9.5,1.2,8.7]) + + self.assertEqual(resultado, 5.72) + + + def test_media_nota_unica(self): + resultado = calcular_media([3.4]) + + self.assertEqual(resultado, 3.4) + + + + def test_media_valores_nao_numericos(self): + resultado = calcular_media(['a', 'b', 'c','d','e']) + + self.assertIsNone(resultado, None) + + +if __name__ == '__main__': + unittest.main() + + + + + \ No newline at end of file