2016-03-12 11:34:35 +00:00
|
|
|
module Main (..) where
|
|
|
|
|
|
|
|
import Task
|
|
|
|
import Console
|
|
|
|
import ElmTest exposing (..)
|
|
|
|
import Dict exposing (Dict)
|
|
|
|
import WordCount exposing (wordCount)
|
|
|
|
|
|
|
|
|
|
|
|
tests : Test
|
|
|
|
tests =
|
|
|
|
suite
|
2016-04-03 20:45:24 +00:00
|
|
|
"Word Count"
|
2016-03-12 11:34:35 +00:00
|
|
|
[ test
|
|
|
|
"count one word"
|
|
|
|
(assertEqual
|
|
|
|
(Dict.fromList [ ( "word", 1 ) ])
|
|
|
|
(wordCount "word")
|
|
|
|
)
|
|
|
|
, test
|
|
|
|
"count one of each word"
|
|
|
|
(assertEqual
|
|
|
|
(Dict.fromList [ ( "one", 1 ), ( "of", 1 ), ( "each", 1 ) ])
|
|
|
|
(wordCount "one of each")
|
|
|
|
)
|
|
|
|
, test
|
|
|
|
"multiple occurrences of a word"
|
|
|
|
(assertEqual
|
|
|
|
(Dict.fromList [ ( "one", 1 ), ( "fish", 4 ), ( "two", 1 ), ( "red", 1 ), ( "blue", 1 ) ])
|
|
|
|
(wordCount "one fish two fish red fish blue fish")
|
|
|
|
)
|
|
|
|
, test
|
|
|
|
"ignore punctuation"
|
|
|
|
(assertEqual
|
|
|
|
(Dict.fromList [ ( "car", 1 ), ( "carpet", 1 ), ( "as", 1 ), ( "java", 1 ), ( "javascript", 1 ) ])
|
|
|
|
(wordCount "car : carpet as java : javascript!!&@$%^&")
|
|
|
|
)
|
|
|
|
, test
|
|
|
|
"include numbers"
|
|
|
|
(assertEqual
|
|
|
|
(Dict.fromList [ ( "testing", 2 ), ( "1", 1 ), ( "2", 1 ) ])
|
|
|
|
(wordCount "testing, 1, 2 testing")
|
|
|
|
)
|
|
|
|
, test
|
|
|
|
"normalize case"
|
|
|
|
(assertEqual
|
|
|
|
(Dict.fromList [ ( "go", 3 ), ( "stop", 2 ) ])
|
|
|
|
(wordCount "go Go GO Stop stop")
|
|
|
|
)
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
port runner : Signal (Task.Task x ())
|
|
|
|
port runner =
|
|
|
|
Console.run (consoleRunner tests)
|