elm/exercises/triangle/TriangleTests.elm
Louis Pilfold 4999d42ab5 Use a type to express triagles instead of strings (#97)
Use a type to express triangles instead of strings
2016-08-15 20:16:34 -04:00

47 lines
2.2 KiB
Elm

module Main exposing (..)
import ElmTest exposing (..)
import Triangle exposing (..)
tests : Test
tests =
suite "triangleKind"
[ test "the solution is for the correct version of the test"
(assertEqual 2 version)
, test "equilateral triangles have equal sides"
(assertEqual (Ok Equilateral) (triangleKind 2 2 2))
, test "larger equilateral triangles also have equal sides"
(assertEqual (Ok Equilateral) (triangleKind 10 10 10))
, test "isosceles triangles have last two sides equal"
(assertEqual (Ok Isosceles) (triangleKind 3 4 4))
, test "isosceles triangles have first and last sides equal"
(assertEqual (Ok Isosceles) (triangleKind 4 3 4))
, test "isosceles triangles have two first sides equal"
(assertEqual (Ok Isosceles) (triangleKind 4 4 3))
, test "isosceles triangles have in fact exactly two sides equal"
(assertEqual (Ok Isosceles) (triangleKind 10 10 2))
, test "scalene triangles have no equal sides"
(assertEqual (Ok Scalene) (triangleKind 3 4 5))
, test "scalene triangles have no equal sides at a larger scale too"
(assertEqual (Ok Scalene) (triangleKind 10 11 12))
, test "scalene triangles have no equal sides at a larger scale too 2"
(assertEqual (Ok Scalene) (triangleKind 5 4 2))
, test "very small triangles are legal"
(assertEqual (Ok Scalene) (triangleKind 0.4 0.6 0.3))
, test "triangles with no size are illegal"
(assertEqual (Err "Invalid lengths") (triangleKind 0 0 0))
, test "triangles with negative sides are illegal"
(assertEqual (Err "Invalid lengths") (triangleKind 3 4 -5))
, test "triangles violating triangle inequality are illegal 1"
(assertEqual (Err "Violates inequality") (triangleKind 1 1 3))
, test "triangles violating triangle inequality are illegal 2"
(assertEqual (Err "Violates inequality") (triangleKind 2 4 2))
, test "triangles violating triangle inequality are illegal 3"
(assertEqual (Err "Violates inequality") (triangleKind 7 3 2))
]
main : Program Never
main =
runSuite tests