package triangle import "math" const testVersion = 2 func KindFromSides(a, b, c float64) Kind { invalid := func(n float64) bool { return math.IsNaN(n) || math.IsInf(n, 0) || n <= 0 } if invalid(a) || invalid(b) || invalid(c) { return NaT } if a+b < c || a+c < b || b+c < a { return NaT } if a == b && b == c { return Equ } if a == b || b == c || a == c { return Iso } return Sca } type Kind string const ( NaT Kind = "not a triangle" Equ Kind = "equilateral" Iso Kind = "isosceles" Sca Kind = "scalene" )