Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions test/HashSetUtilsSpec.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module HashSetUtilsSpec (hashSetTestCases) where

import qualified Data.HashMap.Strict as HM
import Data.HashSet
import HashSetUtils
import Test.HUnit

testMaybeNesEmptyHashSet :: Test
testMaybeNesEmptyHashSet = TestCase $ assertEqual "maybeNes empty HashSet" Nothing (maybeNes (empty :: HashSet Int))

testMaybeNesNonEmptyHashSet :: Test
testMaybeNesNonEmptyHashSet = TestCase $ assertEqual "maybeNes non-empty HashSet" (Just $ (fromList [1, 2, 3] :: HashSet Int)) (maybeNes $ fromList [1, 2, 3])

fromHashMapTest :: Test
fromHashMapTest = TestCase $ assertEqual "fromHashMap" (fromList [(1, "a"), (2, "b"), (3, "c")] :: HashSet (Int, String)) (fromHashMap $ HM.fromList [(1, "a"), (2, "b"), (3, "c")])

hashSetTestCases :: Test
hashSetTestCases =
TestList
[ testMaybeNesEmptyHashSet,
testMaybeNesNonEmptyHashSet,
fromHashMapTest
]
34 changes: 34 additions & 0 deletions test/SequenceUtilsSpec.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
module SequenceUtilsSpec (seqTestCases) where

import Data.Sequence
import SequenceUtils
import Test.HUnit

testMaybeNesEmptySequence :: Test
testMaybeNesEmptySequence = TestCase $ assertEqual "maybeNes empty sequence" Nothing (maybeNes (empty :: Seq Int))

testMaybeNesNonEmptySequence :: Test
testMaybeNesNonEmptySequence = TestCase $ assertEqual "maybeNes non-empty sequence" (Just $ fromList [1, 2, 3]) (maybeNes $ fromList [1, 2, 3])

testUniqEmptySequence :: Test
testUniqEmptySequence = TestCase $ assertEqual "uniq empty sequence" (empty :: Seq Int) (uniq (empty :: Seq Int))

testUniqNonEmptySequence :: Test
testUniqNonEmptySequence = TestCase $ assertEqual "uniq non-empty sequence" (fromList [1, 2, 3]) (uniq $ fromList [1, 2, 2, 3])

testMapMaybeEmptySequence :: Test
testMapMaybeEmptySequence = TestCase $ assertEqual "mapMaybe empty sequence" (empty :: Seq Int) (mapMaybe (const Nothing) (empty :: Seq Int))

testMapMaybeNonEmptySequence :: Test
testMapMaybeNonEmptySequence = TestCase $ assertEqual "mapMaybe non-empty sequence" (fromList [1, 3]) (mapMaybe (\x -> if x == 2 then Nothing else Just x) $ fromList [1, 2, 3])

seqTestCases :: Test
seqTestCases =
TestList
[ testMaybeNesEmptySequence,
testMaybeNesNonEmptySequence,
testUniqEmptySequence,
testUniqNonEmptySequence,
testMapMaybeEmptySequence,
testMapMaybeNonEmptySequence
]
15 changes: 14 additions & 1 deletion test/Spec.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
import HashSetUtilsSpec
import SequenceUtilsSpec
import Test.HUnit
import System.Exit (exitFailure)

processCounts :: Counts -> IO ()
processCounts counts = do
if errors counts + failures counts == 0
then return ()
else exitFailure

main :: IO ()
main = putStrLn "Test suite not yet implemented"
main = do
hsCounts <- runTestTT hashSetTestCases
processCounts hsCounts
seqCounts <- runTestTT seqTestCases
processCounts seqCounts
Loading