問題
三角形の種類を判定する関数triangle_shape()
を完成させて、正常終了するようにしてください。
from enum import Enum, auto
from itertools import permutations
from math import inf, isinf, isnan, nan
class TriShape(Enum):
Nontriangular = auto() # 非三角形
Equilateral = auto() # 正三角形
Isosceles = auto() # 二等辺三角形
Scalene = auto() # 一般の三角形
def triangle_shape(a1, a2, a3) -> TriShape:
ここを修正
return TriShape.Scalene
if __name__ == "__main__":
params = [
(3, 4, "5", TriShape.Nontriangular),
(None, 1, 1, TriShape.Nontriangular),
(nan, 1, 1, TriShape.Nontriangular),
(inf, 1, 1, TriShape.Nontriangular),
(inf, inf, 1, TriShape.Nontriangular),
(-1, 1, 1, TriShape.Nontriangular),
(0, 0, 0, TriShape.Nontriangular),
(0, 1, 1, TriShape.Nontriangular),
(2, 1, 1, TriShape.Nontriangular),
(1, 2, 3, TriShape.Nontriangular),
(1, 1, 1, TriShape.Equilateral),
(1e-2, 1, 1, TriShape.Isosceles),
(1e-20, 1, 1, TriShape.Isosceles),
(3, 4, 5, TriShape.Scalene),
]
for param in params:
expected = param[3]
for args in set(permutations(param[:3])):
actual = triangle_shape(*args)
assert actual == expected, f"{args} {actual}"