Sha256: 5369605a82de77a6d14afdfaed45c1a406e886363ea53113e260bb5d99f360bb
Contents?: true
Size: 673 Bytes
Versions: 274
Compression:
Stored size: 673 Bytes
Contents
package triangle import "math" type Kind string const testVersion = 3 const ( Equ Kind = "equilateral" Iso = "isosceles" Sca = "scalene" NaT = "not a triangle" ) func KindFromSides(a, b, c float64) Kind { if math.IsNaN(a) || math.IsNaN(b) || math.IsNaN(c) { return NaT } if a > b { a, b = b, a } if b > c { b, c = c, b } if a > b { a, b = b, a } // sides are now sorted switch { case math.IsInf(c, 1): // largest side is +Inf, guards against (3, +Inf, +Inf) return NaT case a <= 0: return NaT case a+b < c: // triangle inequality return NaT case a == c: return Equ case a == b || b == c: return Iso } return Sca }
Version data entries
274 entries across 274 versions & 1 rubygems