Skip to content

Instantly share code, notes, and snippets.

@aaronkelton
Created March 18, 2018 01:31
Show Gist options
  • Select an option

  • Save aaronkelton/47abbe7d7b71dde267d03ab861e4dd29 to your computer and use it in GitHub Desktop.

Select an option

Save aaronkelton/47abbe7d7b71dde267d03ab861e4dd29 to your computer and use it in GitHub Desktop.

Revisions

  1. aaronkelton created this gist Mar 18, 2018.
    30 changes: 30 additions & 0 deletions koans_solution_triangle.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    # Triangle Project Code.

    # Triangle analyzes the lengths of the sides of a triangle
    # (represented by a, b and c) and returns the type of triangle.
    #
    # It returns:
    # :equilateral if all sides are equal
    # :isosceles if exactly 2 sides are equal
    # :scalene if no sides are equal
    #
    # The tests for this method can be found in
    # about_triangle_project.rb
    # and
    # about_triangle_project_2.rb
    #
    def triangle(a, b, c)
    raise TriangleError if (a <= 0) or (b <= 0) or (c <= 0)
    raise TriangleError if (a + b <= c) or (a + c <= b) or (b + c <= a)
    if a == b and b == c
    :equilateral
    elsif (a == b and a != c) or (a == c and a != b) or (b == c and b != a)
    :isosceles
    else
    :scalene
    end
    end

    # Error class used in part 2. No need to change this code.
    class TriangleError < StandardError
    end