Sha256: b9ed744a51b52f931cde4f547eb0add3f6729f786f29d60c9f65e079f5c75ff7

Contents?: true

Size: 725 Bytes

Versions: 396

Compression:

Stored size: 725 Bytes

Contents

Array::uniq = ->
  output = {}
  output[@[key]] = @[key] for key in [0...@length]
  value for key, value of output

class Triangle

  constructor: (side1, side2, side3) ->
    @sides = [side1, side2, side3]
    checkNegative @sides
    checkInequality @sides

  kind: ->
    if @sides.uniq().length == 1
      'equilateral'
    else if @sides.uniq().length == 2
      'isosceles'
    else
      'scalene'

  checkNegative = (sides) ->
    for side in sides
      throw 'negative sides are illegal' if side < 0

  checkInequality = (sides) ->
    if sides[0] + sides[1] <= sides[2] || sides[1] + sides[2] <= sides[0] || sides[0] + sides[2] <= sides[1]
      throw 'violation of triangle inequality'

module.exports = Triangle

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.138 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.137 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.136 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.135 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.134 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.133 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.132 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.131 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.130 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.129 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.128 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.127 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.126 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.125 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.124 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.123 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.122 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.121 tracks/coffeescript/exercises/triangle/example.coffee
trackler-2.2.1.120 tracks/coffeescript/exercises/triangle/example.coffee