2016-08-17 11:14:17 +00:00
|
|
|
port module Main exposing (..)
|
2015-10-13 18:56:46 +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-17 01:38:35 +00:00
|
|
|
import Strain exposing (keep, discard)
|
2015-10-13 18:56:46 +00:00
|
|
|
import String
|
|
|
|
|
2016-03-17 01:38:51 +00:00
|
|
|
|
2016-03-17 01:52:25 +00:00
|
|
|
even : Int -> Bool
|
|
|
|
even number =
|
2016-06-19 21:46:13 +00:00
|
|
|
number % 2 == 0
|
2016-03-17 01:38:51 +00:00
|
|
|
|
|
|
|
|
2016-03-17 01:52:25 +00:00
|
|
|
odd : Int -> Bool
|
|
|
|
odd number =
|
2016-06-19 21:46:13 +00:00
|
|
|
number % 2 == 1
|
2016-03-17 01:38:51 +00:00
|
|
|
|
|
|
|
|
2016-03-17 01:52:25 +00:00
|
|
|
isFirstLetter : String -> String -> Bool
|
|
|
|
isFirstLetter letter word =
|
2016-06-19 21:46:13 +00:00
|
|
|
(String.left 1 word) == letter
|
2016-03-17 01:38:51 +00:00
|
|
|
|
|
|
|
|
2016-03-17 01:52:25 +00:00
|
|
|
lessThanTen : number -> Bool
|
|
|
|
lessThanTen num =
|
2016-06-19 21:46:13 +00:00
|
|
|
num < 10
|
2016-03-17 01:38:51 +00:00
|
|
|
|
2015-10-13 18:56:46 +00:00
|
|
|
|
|
|
|
tests : Test
|
2016-03-17 01:38:51 +00:00
|
|
|
tests =
|
2016-08-17 11:14:17 +00:00
|
|
|
describe "Strain"
|
|
|
|
[ test "empty keep" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal []
|
|
|
|
(keep lessThanTen [])
|
|
|
|
, test "keep everything" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ 1, 2, 3 ]
|
|
|
|
(keep lessThanTen [ 1, 2, 3 ])
|
|
|
|
, test "keep first and last" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ 1, 3 ]
|
|
|
|
(keep odd [ 1, 2, 3 ])
|
|
|
|
, test "keep nothing" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal []
|
|
|
|
(keep even [ 1, 3, 5, 7 ])
|
|
|
|
, test "keep neither first nor last" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ 2 ]
|
|
|
|
(keep even [ 1, 2, 3 ])
|
|
|
|
, test "keep strings" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ "zebra", "zombies", "zealot" ]
|
|
|
|
(keep (isFirstLetter "z") [ "apple", "zebra", "banana", "zombies", "cherimoya", "zealot" ])
|
|
|
|
, test "empty discard" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal []
|
|
|
|
(discard lessThanTen [])
|
|
|
|
, test "discard everything" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal []
|
|
|
|
(discard lessThanTen [ 1, 2, 3 ])
|
|
|
|
, test "discard first and last" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ 2 ]
|
|
|
|
(discard odd [ 1, 2, 3 ])
|
|
|
|
, test "discard nothing" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ 1, 3, 5, 7 ]
|
|
|
|
(discard even [ 1, 3, 5, 7 ])
|
|
|
|
, test "discard neither first nor last" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ 1, 3 ]
|
|
|
|
(discard even [ 1, 2, 3 ])
|
|
|
|
, test "discard strings" <|
|
|
|
|
\() ->
|
|
|
|
Expect.equal [ "apple", "banana", "cherimoya" ]
|
|
|
|
(discard (isFirstLetter "z") [ "apple", "zebra", "banana", "zombies", "cherimoya", "zealot" ])
|
2016-06-19 21:46:13 +00:00
|
|
|
]
|
2016-03-17 01:38:51 +00:00
|
|
|
|
2015-10-13 18:56:46 +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
|