Coverage for tests/test_triangle.py: 100%

30 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-02 14:51 +0000

1from unittest import TestCase 

2from src.triangle import area_of_a_triangle 

3 

4 

5class TestAreaOfTriangle(TestCase): 

6 

7 def test_float_values(self): 

8 """Prueba áreas cuando los valores son flotantes""" 

9 self.assertAlmostEqual(area_of_a_triangle(3.4556, 8.3567), 14.43870626) 

10 self.assertEqual(area_of_a_triangle(2.3, 5.7), 6.555) 

11 

12 def test_integer_values(self): 

13 """Prueba áreas cuando los valores son enteros""" 

14 self.assertEqual(area_of_a_triangle(2, 5), 5.0) 

15 self.assertEqual(area_of_a_triangle(4, 6), 12.0) 

16 

17 def test_zero_base(self): 

18 """Prueba áreas cuando la base es cero""" 

19 self.assertEqual(area_of_a_triangle(0, 5), 0.0) 

20 

21 def test_zero_height(self): 

22 """Prueba áreas cuando la altura es cero""" 

23 self.assertEqual(area_of_a_triangle(2, 0), 0.0) 

24 

25 def test_zero_values(self): 

26 """Prueba áreas cuando la base y la altura son cero""" 

27 self.assertEqual(area_of_a_triangle(0, 0), 0.0) 

28 

29 def test_negative_base(self): 

30 """Prueba que se lance ValueError cuando la base es negativa""" 

31 self.assertRaises(ValueError, area_of_a_triangle, -2, 5) 

32 

33 def test_negative_height(self): 

34 """Prueba que se lance ValueError cuando la altura es negativa""" 

35 self.assertRaises(ValueError, area_of_a_triangle, 2, -5) 

36 

37 def test_negative_values(self): 

38 """Prueba que se lance ValueError cuando ambos son negativos""" 

39 self.assertRaises(ValueError, area_of_a_triangle, -2, -5) 

40 

41 def test_with_boolean(self): 

42 """Prueba que se lance TypeError con tipos booleanos""" 

43 self.assertRaises(TypeError, area_of_a_triangle, True, 5) 

44 self.assertRaises(TypeError, area_of_a_triangle, 2, True) 

45 

46 def test_with_string(self): 

47 """Prueba que se lance TypeError con tipos string""" 

48 self.assertRaises(TypeError, area_of_a_triangle, "base", 5) 

49 self.assertRaises(TypeError, area_of_a_triangle, 2, "altura") 

50 

51 def test_with_nulls(self): 

52 """Prueba que se lance TypeError con tipos nulos""" 

53 self.assertRaises(TypeError, area_of_a_triangle, None, 5) 

54 self.assertRaises(TypeError, area_of_a_triangle, 2, None)