2016-08-17 11:14:17 +00:00
|
|
|
port module Main exposing (..)
|
2016-03-27 01:08:15 +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
|
2016-03-27 01:08:15 +00:00
|
|
|
import Allergies exposing (isAllergicTo, toList)
|
|
|
|
import List
|
|
|
|
|
|
|
|
|
|
|
|
tests : Test
|
|
|
|
tests =
|
2016-08-17 11:14:17 +00:00
|
|
|
describe "Allergies"
|
|
|
|
[ describe "isAllergicTo"
|
|
|
|
[ describe "no allergies means not allergic"
|
|
|
|
[ test "peanuts" <|
|
|
|
|
\() -> Expect.equal False (isAllergicTo "peanuts" 0)
|
|
|
|
, test "cats" <|
|
|
|
|
\() -> Expect.equal False (isAllergicTo "cats" 0)
|
|
|
|
, test "strawberries" <|
|
|
|
|
\() -> Expect.equal False (isAllergicTo "strawberries" 0)
|
2016-06-19 21:46:13 +00:00
|
|
|
]
|
2016-08-17 11:14:17 +00:00
|
|
|
, test "is allergic to eggs" <|
|
|
|
|
\() -> Expect.equal True (isAllergicTo "eggs" 1)
|
|
|
|
, describe "has the right allergies"
|
|
|
|
[ test "eggs" <|
|
|
|
|
\() -> Expect.equal True (isAllergicTo "eggs" 5)
|
|
|
|
, test "shellfish" <|
|
|
|
|
\() -> Expect.equal True (isAllergicTo "shellfish" 5)
|
|
|
|
, test "strawberries" <|
|
|
|
|
\() -> Expect.equal False (isAllergicTo "strawberries" 5)
|
2016-06-19 21:46:13 +00:00
|
|
|
]
|
2016-03-27 01:08:15 +00:00
|
|
|
]
|
2016-08-17 11:14:17 +00:00
|
|
|
, describe "toList"
|
|
|
|
[ test "no allergies at all" <|
|
|
|
|
\() -> Expect.equal [] (toList (0))
|
|
|
|
, test "allergic to just peanuts" <|
|
|
|
|
\() -> Expect.equal [ "peanuts" ] (toList (2))
|
|
|
|
, test "allergic to everything" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal (List.sort [ "eggs", "peanuts", "shellfish", "strawberries", "tomatoes", "chocolate", "pollen", "cats" ])
|
|
|
|
(255 |> toList |> List.sort)
|
|
|
|
, test "ignore non allergen score parts" <|
|
|
|
|
\() -> Expect.equal [ "eggs" ] (toList 257)
|
|
|
|
, test "ignore non allergen score parts" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal (List.sort [ "eggs", "shellfish", "strawberries", "tomatoes", "chocolate", "pollen", "cats" ])
|
|
|
|
(509 |> toList |> List.sort)
|
2016-03-27 01:08:15 +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
|