163
社区成员




def triangle_type(a, b, c):
max_side = max(a, b, c)
if a + b + c <= 2 * max_side:
return "Error: not a triangle"
elif a == b == c:
return "Equilateral triangle"
elif a == b or a == c or b == c:
return "Isosceles triangle"
else:
return "Scalene triangle"
import unittest
from triangle import triangle_type
class TestTriangle(unittest.TestCase):
# 有效等价类测试用例
def test_equilateral(self):
self.assertEqual(triangle_type(5, 5, 5), "Equilateral triangle")
def test_isosceles(self):
self.assertEqual(triangle_type(5, 5, 6), "Isosceles triangle")
self.assertEqual(triangle_type(5, 6, 5), "Isosceles triangle")
self.assertEqual(triangle_type(6, 5, 5), "Isosceles triangle")
def test_scalene(self):
self.assertEqual(triangle_type(3, 4, 5), "Scalene triangle")
self.assertEqual(triangle_type(5, 7, 9), "Scalene triangle")
# 无效等价类测试用例
def test_not_triangle(self):
self.assertEqual(triangle_type(1, 2, 3), "Error: not a triangle")
self.assertEqual(triangle_type(3, 1, 2), "Error: not a triangle")
self.assertEqual(triangle_type(2, 3, 1), "Error: not a triangle")
if __name__ == '__main__':
unittest.main()
结果: