Skip to content

Commit bb51575

Browse files
committed
tests for SequenceUtils
1 parent 0cb5772 commit bb51575

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

test/SequenceUtilsSpec.hs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
module SequenceUtilsSpec (seqTestCases) where
2+
3+
import Data.Sequence
4+
import SequenceUtils
5+
import Test.HUnit
6+
7+
testMaybeNesEmptySequence :: Test
8+
testMaybeNesEmptySequence = TestCase $ assertEqual "maybeNes empty sequence" Nothing (maybeNes (empty :: Seq Int))
9+
10+
testMaybeNesNonEmptySequence :: Test
11+
testMaybeNesNonEmptySequence = TestCase $ assertEqual "maybeNes non-empty sequence" (Just $ fromList [1, 2, 3]) (maybeNes $ fromList [1, 2, 3])
12+
13+
testUniqEmptySequence :: Test
14+
testUniqEmptySequence = TestCase $ assertEqual "uniq empty sequence" (empty :: Seq Int) (uniq (empty :: Seq Int))
15+
16+
testUniqNonEmptySequence :: Test
17+
testUniqNonEmptySequence = TestCase $ assertEqual "uniq non-empty sequence" (fromList [1, 2, 3]) (uniq $ fromList [1, 2, 2, 3])
18+
19+
testMapMaybeEmptySequence :: Test
20+
testMapMaybeEmptySequence = TestCase $ assertEqual "mapMaybe empty sequence" (empty :: Seq Int) (mapMaybe (const Nothing) (empty :: Seq Int))
21+
22+
testMapMaybeNonEmptySequence :: Test
23+
testMapMaybeNonEmptySequence = TestCase $ assertEqual "mapMaybe non-empty sequence" (fromList [1, 3]) (mapMaybe (\x -> if x == 2 then Nothing else Just x) $ fromList [1, 2, 3])
24+
25+
seqTestCases :: Test
26+
seqTestCases =
27+
TestList
28+
[ testMaybeNesEmptySequence,
29+
testMaybeNesNonEmptySequence,
30+
testUniqEmptySequence,
31+
testUniqNonEmptySequence,
32+
testMapMaybeEmptySequence,
33+
testMapMaybeNonEmptySequence
34+
]

test/Spec.hs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
import SequenceUtilsSpec
12
import Test.HUnit
3+
import System.Exit (exitFailure, exitSuccess)
24

35
main :: IO ()
4-
main = putStrLn "Test suite not yet implemented"
6+
main = do
7+
counts <- runTestTT seqTestCases
8+
if errors counts + failures counts == 0
9+
then exitSuccess
10+
else exitFailure

0 commit comments

Comments
 (0)