-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTriangleAreaUnitTests.py
72 lines (62 loc) · 2.38 KB
/
TriangleAreaUnitTests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Тесты модуля TriangleAreaUnit
# НУЛЕВЫЕ КООРДИНАТЫ
# 0 0 0 0 0 0
# ValueError Exception
# ПРОИЗВОЛЬНЫЙ ТРЕУГОЛЬНИК
# 0 0 3 5 8 0
# area = 20
# ПРЯМОУГОЛЬНЫЙ ТРЕУГОЛЬНИК
# 0 0 0 6 7 0
# area = 21
# РАВНОБЕДРЕННЫЙ ТРЕУГОЛЬНИК
# 0 0 5 3 10 0
# area = 15
# РАВНОСТОРОННИЙ ТРЕУГОЛЬНИК
# 0 0 0.5 0.867 1 0
# area = 0.4335
import math
import unittest
import TriangleAreaUnit as Calc # тестируемый модуль
class TestCalc(unittest.TestCase):
# нулевые координаты
def test_get_area_exception(self):
p1 = Calc.Point(0, 0)
p2 = Calc.Point(0, 0)
p3 = Calc.Point(0, 0)
triangle = Calc.Triangle(p1, p2, p3)
with self.assertRaises(ValueError):
triangle.get_area()
# произвольный треугольник
def test_get_area(self):
p1 = Calc.Point(0, 0)
p2 = Calc.Point(3, 5)
p3 = Calc.Point(8, 0)
triangle = Calc.Triangle(p1, p2, p3)
# self.assertEqual(triangle.get_square(), 20)
assert math.isclose(triangle.get_area(), 20, abs_tol=0.0001)
# прямоугольный треугольник
def test_get_area_rectangular(self):
p1 = Calc.Point(0, 0)
p2 = Calc.Point(0, 6)
p3 = Calc.Point(7, 0)
triangle = Calc.Triangle(p1, p2, p3)
# self.assertEqual(triangle.get_square(), 21)
assert math.isclose(triangle.get_area(), 21, abs_tol=0.0001)
# равнобедренный треугольник
def test_get_area_isosceles(self):
p1 = Calc.Point(0, 0)
p2 = Calc.Point(5, 3)
p3 = Calc.Point(10, 0)
triangle = Calc.Triangle(p1, p2, p3)
# self.assertEqual(triangle.get_square(), 15)
assert math.isclose(triangle.get_area(), 15, abs_tol=0.0001)
# равносторонний треугольник
def test_get_area_equilateral(self):
p1 = Calc.Point(0, 0)
p2 = Calc.Point(0.5, 0.867)
p3 = Calc.Point(1, 0)
triangle = Calc.Triangle(p1, p2, p3)
# self.assertEqual(triangle.get_square(), 0.4335)
assert math.isclose(triangle.get_area(), 0.4335, abs_tol=0.00001)
if __name__ == "__main__":
unittest.main()