LoginSignup
0
0

三角形の種類の判定

Posted at

問題

三角形の種類を判定する関数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}"
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0