2016-08-17 11:14:17 +00:00
|
|
|
port module Main exposing (..)
|
2016-03-14 00:09:05 +00:00
|
|
|
|
2016-08-17 11:14:17 +00:00
|
|
|
import Test.Runner.Node exposing (run)
|
|
|
|
import Json.Encode exposing (Value)
|
|
|
|
import Test exposing (..)
|
|
|
|
import Expect
|
|
|
|
import Triangle exposing (triangleKind, Triangle(..))
|
2016-03-14 00:09:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
tests : Test
|
|
|
|
tests =
|
2016-08-17 11:14:17 +00:00
|
|
|
describe "triangleKind"
|
|
|
|
[ test "equilateral triangles have equal sides" <|
|
|
|
|
\() -> Expect.equal (Ok Equilateral) (triangleKind 2 2 2)
|
|
|
|
, test "larger equilateral triangles also have equal sides" <|
|
|
|
|
\() -> Expect.equal (Ok Equilateral) (triangleKind 10 10 10)
|
|
|
|
, test "isosceles triangles have last two sides equal" <|
|
|
|
|
\() -> Expect.equal (Ok Isosceles) (triangleKind 3 4 4)
|
|
|
|
, test "isosceles triangles have first and last sides equal" <|
|
|
|
|
\() -> Expect.equal (Ok Isosceles) (triangleKind 4 3 4)
|
|
|
|
, test "isosceles triangles have two first sides equal" <|
|
|
|
|
\() -> Expect.equal (Ok Isosceles) (triangleKind 4 4 3)
|
|
|
|
, test "isosceles triangles have in fact exactly two sides equal" <|
|
|
|
|
\() -> Expect.equal (Ok Isosceles) (triangleKind 10 10 2)
|
|
|
|
, test "scalene triangles have no equal sides" <|
|
|
|
|
\() -> Expect.equal (Ok Scalene) (triangleKind 3 4 5)
|
|
|
|
, test "scalene triangles have no equal sides at a larger scale too" <|
|
|
|
|
\() -> Expect.equal (Ok Scalene) (triangleKind 10 11 12)
|
|
|
|
, test "scalene triangles have no equal sides at a larger scale too 2" <|
|
|
|
|
\() -> Expect.equal (Ok Scalene) (triangleKind 5 4 2)
|
|
|
|
, test "very small triangles are legal" <|
|
|
|
|
\() -> Expect.equal (Ok Scalene) (triangleKind 0.4 0.6 0.3)
|
|
|
|
, test "triangles with no size are illegal" <|
|
|
|
|
\() -> Expect.equal (Err "Invalid lengths") (triangleKind 0 0 0)
|
|
|
|
, test "triangles with negative sides are illegal" <|
|
|
|
|
\() -> Expect.equal (Err "Invalid lengths") (triangleKind 3 4 -5)
|
|
|
|
, test "triangles violating triangle inequality are illegal 1" <|
|
|
|
|
\() -> Expect.equal (Err "Violates inequality") (triangleKind 1 1 3)
|
|
|
|
, test "triangles violating triangle inequality are illegal 2" <|
|
|
|
|
\() -> Expect.equal (Err "Violates inequality") (triangleKind 7 3 2)
|
2016-06-19 21:46:13 +00:00
|
|
|
]
|
2016-03-14 00:09:05 +00:00
|
|
|
|
|
|
|
|
2016-08-23 00:31:41 +00:00
|
|
|
main : Program Value
|
2016-05-13 02:26:52 +00:00
|
|
|
main =
|
2016-08-17 11:14:17 +00:00
|
|
|
run emit tests
|
|
|
|
|
|
|
|
|
|
|
|
port emit : ( String, Value ) -> Cmd msg
|