def isLegalTriangle(s1: float, s2: float, s3: float) -> bool: """Return True if s1, s2, and s3 can form a legal triangle, False otherwise.""" return s1 + s2 > s3 and s2 + s3 > s1 and s3 + s1 > s2 def getTriangleType(a: float, b: float, c: float) -> str: """Return the type of triangle formed by sides a, b, and c.""" if not isLegalTriangle(a, b, c): return "illegal" if a == b and b == c: return "equilateral" elif a == b or b == c or c == a: return "isosceles" else: return "scalene" print("Testing getTriangleType()...", end="") assert getTriangleType(5, 6, 7) == "scalene" assert getTriangleType(7, 5, 6) == "scalene" assert getTriangleType(6, 5, 5) == "isosceles" assert getTriangleType(5, 6, 5) == "isosceles" assert getTriangleType(5, 5, 6) == "isosceles" assert getTriangleType(7, 7, 7) == "equilateral" assert getTriangleType(1, 2, 3) == "illegal" print("Passed!")