この問題の単純さを許してください。私はTDDについて学んでおり、次のステートメントがあります。
def test_equilateral_triangles_have_equal_sides
assert_equal :equilateral, triangle(2, 2, 2)
assert_equal :equilateral, triangle(10, 10, 10)
end
def test_isosceles_triangles_have_exactly_two_sides_equal
assert_equal :isosceles, triangle(3, 4, 4)
assert_equal :isosceles, triangle(4, 3, 4)
assert_equal :isosceles, triangle(4, 4, 3)
assert_equal :isosceles, triangle(10, 10, 2)
end
def test_scalene_triangles_have_no_equal_sides
assert_equal :scalene, triangle(3, 4, 5)
assert_equal :scalene, triangle(10, 11, 12)
assert_equal :scalene, triangle(5, 4, 2)
end
私はこの問題に対して非常に基本的な解決策を作成し、より経験豊富なプログラマーから別の解決策についてフィードバックを得たいと考えました。
私のコード:
def triangle(a, b, c)
if (a == b) && (a == c) && (b == c)
:equilateral
elsif (a == b) && ((a || b) != c)
:isosceles
elsif (a == c) && ((a || c) != b)
:isosceles
elsif (b == c) && ((b || c) != a)
:isosceles
else
:scalene
end