elm/exercises/sublist/SublistTests.elm

74 lines
2.3 KiB
Elm
Raw Normal View History

module Main exposing (..)
2015-10-12 16:46:15 +00:00
import ElmTest exposing (..)
import Sublist exposing (version, sublist, ListComparison(..))
2015-10-12 16:46:15 +00:00
2015-10-12 16:46:15 +00:00
tests : Test
tests =
suite
"Sublist"
[ test
"the solution is for the correct version of the test"
(assertEqual 2 version)
, test
"empty equals empty"
2016-04-10 03:15:51 +00:00
(assertEqual Equal (sublist [] []))
, test
"empty is a sublist of anything"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [] [ 1, 2 ]))
, test
"anything is a superlist of empty"
2016-04-10 03:15:51 +00:00
(assertEqual Superlist (sublist [ 1, 2 ] []))
, test
"1 is not 2"
2016-04-10 03:15:51 +00:00
(assertEqual Unequal (sublist [ 1 ] [ 2 ]))
, test
"compare larger equal lists"
2016-04-10 03:15:51 +00:00
(assertEqual Equal (sublist [ 1, 1, 1 ] [ 1, 1, 1 ]))
, test
"sublist at start"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [ 1, 2, 3 ] [ 1, 2, 3, 4, 5 ]))
, test
"sublist in the middle"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [ 4, 3, 2 ] [ 5, 4, 3, 2, 1 ]))
, test
"sublist at end"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [ 3, 4, 5 ] [ 1, 2, 3, 4, 5 ]))
, test
"partially matching sublist at start"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [ 1, 1, 2 ] [ 1, 1, 1, 2 ]))
, test
"sublist early in huge list"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [ 3, 4, 5 ] [1..100000]))
, test
"huge sublist not in list"
(assertEqual Unequal (sublist [10..5001] [1..5000]))
, test
"superlist at start"
2016-04-10 03:15:51 +00:00
(assertEqual Superlist (sublist [ 1, 2, 3, 4, 5 ] [ 1, 2, 3 ]))
, test
"superlist in middle"
2016-04-10 03:15:51 +00:00
(assertEqual Superlist (sublist [ 5, 4, 3, 2, 1 ] [ 4, 3, 2 ]))
, test
"superlist at end"
2016-04-10 03:15:51 +00:00
(assertEqual Superlist (sublist [ 1, 2, 3, 4, 5 ] [ 3, 4, 5 ]))
, test
"partially matching superlist at start"
2016-04-10 03:15:51 +00:00
(assertEqual Superlist (sublist [ 1, 1, 1, 2 ] [ 1, 1, 2 ]))
, test
"superlist early in huge list"
2016-04-10 03:15:51 +00:00
(assertEqual Superlist (sublist [1..100000] [ 3, 4, 5 ]))
, test
"recurring values sublist"
2016-04-10 03:15:51 +00:00
(assertEqual Sublist (sublist [ 1, 2, 1, 2, 3 ] [ 1, 2, 3, 1, 2, 1, 2, 3, 2, 1 ]))
, test
"recurring values unequal"
2016-04-10 03:15:51 +00:00
(assertEqual Unequal (sublist [ 1, 2, 1, 2, 3 ] [ 1, 2, 3, 1, 2, 3, 2, 3, 2, 1 ]))
]
2015-10-12 16:46:15 +00:00
main : Program Never
main =
runSuite tests