Skip to content

Commit df5a680

Browse files
committed
Compled mod 9
1 parent 469c1f7 commit df5a680

File tree

4 files changed

+274
-11
lines changed

4 files changed

+274
-11
lines changed

Diff for: .DS_Store

0 Bytes
Binary file not shown.

Diff for: M09_errorhandling/Prep_Course_Homework_09.ipynb

+106-10
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@
2121
"execution_count": null,
2222
"metadata": {},
2323
"outputs": [],
24-
"source": []
24+
"source": [
25+
"import sys \n",
26+
"\n",
27+
"sys.path.append(r'/Users/macbookpro/Documents/Programacion /Python /Repositorio hub /Python-Prep/M09_errorhandling/fun07.py')\n",
28+
"\n",
29+
"import fun07 as f \n",
30+
"\n",
31+
"f1 = f.Funciones_7(1,2,3,4,5)"
32+
]
2533
},
2634
{
2735
"attachments": {},
@@ -36,7 +44,18 @@
3644
"execution_count": null,
3745
"metadata": {},
3846
"outputs": [],
39-
"source": []
47+
"source": [
48+
"import fun07 as f \n",
49+
"import importlib\n",
50+
"\n",
51+
"importlib.reload(f)\n",
52+
"\n",
53+
"f1 = f.Funciones_7([1,2,3,4,5])\n",
54+
"\n",
55+
"#f1.convert_grados(1,2)\n",
56+
"\n",
57+
"f1.convert_grados('celsius','farenheit')"
58+
]
4059
},
4160
{
4261
"attachments": {},
@@ -56,7 +75,32 @@
5675
"execution_count": null,
5776
"metadata": {},
5877
"outputs": [],
59-
"source": []
78+
"source": [
79+
"import fun07 as f\n",
80+
"import unittest\n",
81+
"\n",
82+
"class Pruebas (unittest.TestCase):\n",
83+
"\n",
84+
" def test_prueba_crear_objeto(self):\n",
85+
" objeto = 'producto'\n",
86+
" self.assertRaises(ValueError,f.Funciones_7,objeto)\n",
87+
" def test_prueba_crear_objeto_correcta(self):\n",
88+
" objeto = [1,2,3,4,5,2]\n",
89+
" f1 = f.Funciones_7(objeto)\n",
90+
" self.assertAlmostEqual(f1.lista, objeto)\n",
91+
" def test_valor_primos(self):\n",
92+
" lis = [1,2,3,4,1,6,7,8]\n",
93+
" f1 = f.Funciones_7(lis)\n",
94+
" mas_repetido , max_rep = f1.__cuenta_de_numeros_repetidos(False)\n",
95+
" mas_repetido = [mas_repetido]\n",
96+
" mas_repetido.append(max_rep)\n",
97+
" result = [1,2]\n",
98+
" self.assertEqual(mas_repetido, result, 'no es igual')\n",
99+
"\n",
100+
"\n",
101+
"\n",
102+
"unittest.main(argv=[''], verbosity=2, exit=False)"
103+
]
60104
},
61105
{
62106
"attachments": {},
@@ -71,7 +115,13 @@
71115
"execution_count": null,
72116
"metadata": {},
73117
"outputs": [],
74-
"source": []
118+
"source": [
119+
"import unittest\n",
120+
"\n",
121+
"f2 = f.Funciones_7('numero')\n",
122+
"\n",
123+
"unittest.main(argv=[''], verbosity=2, exit=False)"
124+
]
75125
},
76126
{
77127
"attachments": {},
@@ -86,7 +136,18 @@
86136
"execution_count": null,
87137
"metadata": {},
88138
"outputs": [],
89-
"source": []
139+
"source": [
140+
"class Test_probando_primos (unittest.TestCase):\n",
141+
"\n",
142+
" def test_verifica_primos(self):\n",
143+
" lis = [1,2,3,4,5,6,7]\n",
144+
" f1 = f.Funciones_7(lis)\n",
145+
" primos = f1.es_primo()\n",
146+
" primos_esperado = [True,False,True,False,False]\n",
147+
" self.assertEqual(primos, primos_esperado)\n",
148+
"\n",
149+
"unittest.main(argv=[''], verbosity=2, exit=False)"
150+
]
90151
},
91152
{
92153
"attachments": {},
@@ -101,7 +162,18 @@
101162
"execution_count": null,
102163
"metadata": {},
103164
"outputs": [],
104-
"source": []
165+
"source": [
166+
"class Test_probando_grados(unittest.TestCase):\n",
167+
"\n",
168+
" def test_verifica_grados(self):\n",
169+
" lis = [1,2,33,4,14]\n",
170+
" f1 = f.Funciones_7(lis)\n",
171+
" grados = f1.convert_grados('celsius','farenheit')\n",
172+
" grados_esperado = [32,45,33,12,11]\n",
173+
" self.assertEqual(grados, grados_esperado)\n",
174+
"\n",
175+
" unittest.main(argv=[''], verbosity=2 , exit=False)"
176+
]
105177
},
106178
{
107179
"attachments": {},
@@ -113,10 +185,34 @@
113185
},
114186
{
115187
"cell_type": "code",
116-
"execution_count": null,
188+
"execution_count": 1,
117189
"metadata": {},
118-
"outputs": [],
119-
"source": []
190+
"outputs": [
191+
{
192+
"ename": "NameError",
193+
"evalue": "name 'unittest' is not defined",
194+
"output_type": "error",
195+
"traceback": [
196+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
197+
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
198+
"Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mTest_probando_fact\u001b[39;00m(\u001b[43munittest\u001b[49m\u001b[38;5;241m.\u001b[39mTestCase):\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mtest_verifica_fafct\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 4\u001b[0m lis \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m2\u001b[39m,\u001b[38;5;241m33\u001b[39m,\u001b[38;5;241m4\u001b[39m,\u001b[38;5;241m14\u001b[39m]\n",
199+
"\u001b[0;31mNameError\u001b[0m: name 'unittest' is not defined"
200+
]
201+
}
202+
],
203+
"source": [
204+
"import unittest\n",
205+
"class Test_probando_fact(unittest.TestCase):\n",
206+
"\n",
207+
" def test_verifica_fafct(self):\n",
208+
" lis = [1,2,33,4,14]\n",
209+
" f1 = f.Funciones_7(lis)\n",
210+
" num_fact = f1.num_fact()\n",
211+
" fact_esperado = [32,45,33,12,11]\n",
212+
" self.assertEqual(num_fact, fact_esperado)\n",
213+
"\n",
214+
" unittest.main(argv=[''], verbosity=2 , exit=False)"
215+
]
120216
}
121217
],
122218
"metadata": {
@@ -138,7 +234,7 @@
138234
"name": "python",
139235
"nbconvert_exporter": "python",
140236
"pygments_lexer": "ipython3",
141-
"version": "3.9.7"
237+
"version": "3.9.6"
142238
}
143239
},
144240
"nbformat": 4,

Diff for: M09_errorhandling/Prep_Course_Homework_09.py

+73-1
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,28 @@
88
# In[1]:
99

1010

11+
import sys
12+
13+
sys.path.append(r'/Users/macbookpro/Documents/Programacion /Python /Repositorio hub /Python-Prep/M09_errorhandling/fun07.py')
14+
15+
import fun07 as f
16+
17+
f1 = f.Funciones_7(1,2,3,4,5)
1118

1219

1320
# 2) En la función que hace la conversión de grados, validar que los parámetros enviados sean los esperados, de no serlo, informar cuáles son los valores esperados.
1421

1522
# In[5]:
23+
import fun07 as f
24+
import importlib
25+
26+
importlib.reload(f)
1627

28+
f1 = f.Funciones_7([1,2,3,4,5])
1729

30+
#f1.convert_grados(1,2)
31+
32+
f1.convert_grados('celsius','farenheit')
1833

1934

2035

@@ -27,34 +42,91 @@
2742

2843
# In[9]:
2944

45+
import fun07 as f
46+
import unittest
47+
48+
class Pruebas (unittest.TestCase):
49+
50+
def test_prueba_crear_objeto(self):
51+
objeto = 'producto'
52+
self.assertRaises(ValueError,f.Funciones_7,objeto)
53+
def test_prueba_crear_objeto_correcta(self):
54+
objeto = [1,2,3,4,5,2]
55+
f1 = f.Funciones_7(objeto)
56+
self.assertAlmostEqual(f1.lista, objeto)
57+
def test_valor_primos(self):
58+
lis = [1,2,3,4,1,6,7,8]
59+
f1 = f.Funciones_7(lis)
60+
mas_repetido , max_rep = f1.__cuenta_de_numeros_repetidos(False)
61+
mas_repetido = [mas_repetido]
62+
mas_repetido.append(max_rep)
63+
result = [1,2]
64+
self.assertEqual(mas_repetido, result, 'no es igual')
65+
3066

3167

68+
unittest.main(argv=[''], verbosity=2, exit=False)
69+
70+
# if __name__ == '__main__':
71+
# unittest.main()
3272

3373
# 4) Probar una creación incorrecta y visualizar la salida del "raise"
3474

3575
# In[13]:
3676

3777

78+
import unittest
3879

80+
f2 = f.Funciones_7('numero')
3981

82+
unittest.main(argv=[''], verbosity=2, exit=False)
4083
# 6) Agregar casos de pruebas para el método verifica_primos() realizando el cambio en la clase, para que devuelva una lista de True o False en función de que el elemento en la posisicón sea o no primo
4184

4285
# In[14]:
4386

87+
class Test_probando_primos (unittest.TestCase):
4488

89+
def test_verifica_primos(self):
90+
lis = [1,2,3,4,5,6,7]
91+
f1 = f.Funciones_7(lis)
92+
primos = f1.es_primo()
93+
primos_esperado = [True,False,True,False,False]
94+
self.assertEqual(primos, primos_esperado)
4595

46-
96+
unittest.main(argv=[''], verbosity=2, exit=False)
4797
# 7) Agregar casos de pruebas para el método conversion_grados()
4898

4999
# In[17]:
50100

101+
class Test_probando_grados(unittest.TestCase):
102+
103+
def test_verifica_grados(self):
104+
lis = [1,2,33,4,14]
105+
f1 = f.Funciones_7(lis)
106+
grados = f1.convert_grados('celsius','farenheit')
107+
grados_esperado = [32,45,33,12,11]
108+
self.assertEqual(grados, grados_esperado)
109+
110+
unittest.main(argv=[''], verbosity=2 , exit=False)
51111

52112

53113

54114
# 8) Agregar casos de pruebas para el método factorial()
55115

56116
# In[20]:
57117

118+
class Test_probando_fact(unittest.TestCase):
119+
120+
def test_verifica_fafct(self):
121+
lis = [1,2,33,4,14]
122+
f1 = f.Funciones_7(lis)
123+
num_fact = f1.num_fact()
124+
fact_esperado = [32,45,33,12,11]
125+
self.assertEqual(num_fact, fact_esperado)
126+
127+
unittest.main(argv=[''], verbosity=2 , exit=False)
128+
58129

59130

60131

132+
# %%

Diff for: M09_errorhandling/fun07.py

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
class Funciones_7:
2+
3+
def __init__ (self, lista_de_numeros):
4+
self.lista = lista_de_numeros
5+
pass
6+
def es_primo(self):
7+
primo = True
8+
for i in self.lista:
9+
for n in range(2,i):
10+
if i % n == 0:
11+
primo = False
12+
print(i, 'no es numero primo')
13+
else:
14+
(i, 'es numero primo')
15+
def convert_grados(self, grados_origen, grados_destino):
16+
for i in self.lista:
17+
print(i, 'grados',grados_origen, ' es igual a', self.__convert_grados(i,grados_origen,grados_destino),'grados',grados_destino)
18+
19+
def num_fact (self):
20+
for i in self.lista:
21+
print('numero fact de ', i ,' es', self.__num_fact(i))
22+
23+
def __es_primo(self,numero):
24+
primo = True
25+
for n in range(2,numero):
26+
if numero % n == 0:
27+
primo = False
28+
break
29+
return primo
30+
31+
def __cuenta_de_numeros_repetidos(self,lista, mayor = True):
32+
conteo_numeros = {}
33+
for num in lista:
34+
if num in conteo_numeros:
35+
conteo_numeros[num] +=1
36+
else:
37+
conteo_numeros[num] = 1
38+
mas_reptido = ''
39+
max_rep = 0
40+
41+
for num, repeticiones in conteo_numeros.items():
42+
if repeticiones > max_rep:
43+
mas_reptido = num
44+
max_rep = repeticiones
45+
elif repeticiones == max_rep:
46+
if mayor:
47+
if num > mas_repetido:
48+
mas_repetido = num
49+
else:
50+
if num < mas_repetido:
51+
mas_repetido = num
52+
53+
return mas_reptido, max_rep
54+
55+
def __convert_grados (self, unidad, grados_origen , grados_final):
56+
if grados_origen == 'celsius':
57+
if grados_final == 'celsius':
58+
grados_convert = unidad
59+
elif grados_final == 'farenheit':
60+
grados_convert = (unidad * 9/5) + 32
61+
elif grados_final == 'kelvin':
62+
grados_convert = (unidad + 273,15)
63+
else:
64+
print( 'parametro incorrecto')
65+
elif grados_origen == 'farenheit':
66+
if grados_final == 'farenheit':
67+
grados_convert = unidad
68+
elif grados_final == 'celsius':
69+
grados_convert = (unidad - 32 ) * 5/9
70+
elif grados_final == 'kelvin':
71+
grados_convert = (unidad -32 )* 5/9 + 273,15
72+
else:
73+
print( 'parametro incorrecto')
74+
elif grados_origen == 'kelvin':
75+
if grados_final == 'kelvin':
76+
grados_convert = unidad
77+
elif grados_final == 'celsius':
78+
grados_convert = (unidad - 273,15 )
79+
elif grados_final == 'farenheit':
80+
grados_convert = (unidad - 273,15) * 9/5 +32
81+
else:
82+
print( 'parametro incorrecto')
83+
else:
84+
print('ingrese variable correcta ')
85+
86+
return grados_convert
87+
88+
def __num_fact(self,numero):
89+
if (type(numero) != int):
90+
return 'ingresa un numero entero'
91+
if (numero < 0):
92+
return 'ingresa un numero positivo'
93+
if (numero > 1):
94+
numero = numero * self.__num_fact(numero - 1)
95+
return numero

0 commit comments

Comments
 (0)