elm/exercises/phone-number/PhoneNumberTests.elm

55 lines
1.5 KiB
Elm
Raw Normal View History

module Main (..) where
2015-10-13 23:05:05 +00:00
import Task
import Console
import ElmTest exposing (..)
import PhoneNumber exposing (getNumber, printPretty)
2015-10-13 23:05:05 +00:00
2015-10-13 23:05:05 +00:00
tests : Test
tests =
suite
"PhoneNumber"
[ test
"cleans number"
(assertEqual "1234567890" (getNumber "(123) 456-7890"))
, test
"cleans number with dots"
(assertEqual "1234567890" (getNumber "123.456.7890"))
, test
"valid when 11 digits and first is 1"
(assertEqual "1234567890" (getNumber "11234567890"))
, test
"invalid when 11 digits"
(assertEqual "0000000000" (getNumber "21234567890"))
, test
"invalid when 9 digits"
(assertEqual "0000000000" (getNumber "123456789"))
, test
"invalid when 12 digits"
(assertEqual "0000000000" (getNumber "123456789012"))
, test
"invalid when empty"
(assertEqual "0000000000" (getNumber ""))
, test
"invalid when no digits present"
(assertEqual "0000000000" (getNumber " (-) "))
, test
"valid with leading characters"
(assertEqual "1234567890" (getNumber "my number is 123 456 7890"))
, test
"valid with trailing characters"
(assertEqual "1234567890" (getNumber "123 456 7890 - bob"))
, test
"pretty print"
(assertEqual "(123) 456-7890" (printPretty "1234567890"))
, test
"pretty print with full us phone number"
(assertEqual "(123) 456-7890" (printPretty "11234567890"))
]
2015-10-13 23:05:05 +00:00
port runner : Signal (Task.Task x ())
port runner =
Console.run (consoleRunner tests)