Skip to content

Commit d84356e

Browse files
authored
mouredev#13 - Python
1 parent 3d815d5 commit d84356e

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import unittest
2+
3+
# No importe date ni datetime porque daba error
4+
5+
"""
6+
EJERCICIO:
7+
* Crea una función que se encargue de sumar dos números y retornar
8+
* su resultado.
9+
* Crea un test, utilizando las herramientas de tu lenguaje, que sea
10+
* capaz de determinar si esa función se ejecuta correctamente.
11+
"""
12+
13+
14+
def sum(a, b):
15+
if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
16+
raise ValueError("Los argumentos deben ser enteros o decimales.")
17+
return a + b
18+
19+
20+
class TestSum(unittest.TestCase):
21+
22+
def test_sum(self):
23+
self.assertEqual(sum(5, 7), 12)
24+
self.assertEqual(sum(5, -7), -2)
25+
self.assertEqual(sum(0, 0), 0)
26+
self.assertEqual(sum(2.5, 2.1), 4.6)
27+
self.assertEqual(sum(2, 2.1), 4.1)
28+
self.assertEqual(sum(2.5, 2.5), 5)
29+
30+
def test_sum_type(self):
31+
with self.assertRaises(ValueError):
32+
sum("5", 7)
33+
with self.assertRaises(ValueError):
34+
sum(5, "7")
35+
with self.assertRaises(ValueError):
36+
sum("5", "7")
37+
with self.assertRaises(ValueError):
38+
sum("a", 7)
39+
with self.assertRaises(ValueError):
40+
sum(None, 7)
41+
42+
43+
"""
44+
DIFICULTAD EXTRA (opcional):
45+
* Crea un diccionario con las siguientes claves y valores:
46+
* "name": "Tu nombre"
47+
* "age": "Tu edad"
48+
* "birth_date": "Tu fecha de nacimiento"
49+
* "programming_languages": ["Listado de lenguajes de programación"]
50+
* Crea dos test:
51+
* - Un primero que determine que existen todos los campos.
52+
* - Un segundo que determine que los datos introducidos son correctos.
53+
"""
54+
55+
56+
class TestData(unittest.TestCase):
57+
58+
def setUp(self) -> None:
59+
self.data = {
60+
"name": "Dkp-Dev",
61+
"age": 29,
62+
"birth_date":"11-01-1995",
63+
"programming_languages": ["Python", "Java"]
64+
}
65+
66+
def test_fields_exist(self):
67+
self.assertIn("name", self.data)
68+
self.assertIn("age", self.data)
69+
self.assertIn("birth_date", self.data) # Lo cambie a str porque me daba error unu
70+
self.assertIn("programming_languages", self.data)
71+
72+
def test_data_is_correct(self):
73+
self.assertIsInstance(self.data["name"], str)
74+
self.assertIsInstance(self.data["age"], int)
75+
self.assertIsInstance(self.data["birth_date"], str)
76+
self.assertIsInstance(self.data["programming_languages"], list)
77+
78+
79+
unittest.main()

0 commit comments

Comments
 (0)