Sha256: baf290a0cb2fa9cad637d03aa78736d475aab920ed6b8c61c805320ac8a0f7e9

Contents?: true

Size: 530 Bytes

Versions: 133

Compression:

Stored size: 530 Bytes

Contents

class Triangle
  def initialize(sides)
    @sides = sides
    @sides = [] of Int32 if illegal?
  end

  def equilateral?
    @sides.uniq.size == 1
  end

  def isosceles?
    1 <= @sides.uniq.size <= 2
  end

  def scalene?
    @sides.uniq.size == 3
  end

  private def illegal?
    impossible_length_side? || violates_inequality?
  end

  private def violates_inequality?
    a, b, c = @sides
    a + b <= c || a + c <= b || b + c <= a
  end

  private def impossible_length_side?
    @sides.any? { |side| side <= 0 }
  end
end

Version data entries

133 entries across 133 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.179 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.178 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.177 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.176 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.175 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.174 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.173 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.172 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.171 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.170 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.169 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.167 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.166 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.165 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.164 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.163 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.162 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.161 tracks/crystal/exercises/triangle/src/example.cr
trackler-2.2.1.160 tracks/crystal/exercises/triangle/src/example.cr