Current section
Files
Jump to
Current section
Files
tests/Test/Data/Queue.phi
module Test.Data.Queue where
import Test.QuickCheck (TestGroup(..), TestResult, quickCheck)
import Prelude
import Data.Queue as Q
example :: Q.Queue Int
example = Q.fromList [1,2,3,4,5]
emptyQ :: Q.Queue Int
emptyQ = Q.fromList []
dropTest1 :: Bool
dropTest1 = (Q.drop example == Q.fromList [2,3,4,5])
dropTest2 :: Bool
dropTest2 = (Q.drop emptyQ == emptyQ)
dropTest3 :: Bool
dropTest3 = (Q.dropR example == Q.fromList [1,2,3,4])
dropTest4 :: Bool
dropTest4 = (Q.dropR emptyQ == emptyQ)
getTest1 :: Bool
getTest1 = (Q.get example == 1)
getTest2 :: Bool
getTest2 = (Q.getR example == 5)
lastTest :: Bool
lastTest = (Q.last example == 5)
memberTest :: Bool
memberTest = (Q.member 3 example) && (Q.member 1 example) && (Q.member 5 example)
newTest :: Bool
newTest = Q.isEmpty Q.new
propJoin :: Q.Queue Int->Q.Queue Int->Bool
propJoin q1 q2 = Q.toList q1 ++ Q.toList q2 == Q.toList (Q.join q1 q2)
--reverseTest :: Bool
--reverseTest = (Q.reverse )
propTail :: Q.Queue Int->Bool
propTail q = ( (Q.toList $ Q.tail example) == [2,3,4,5])
--splitTest :: Bool
--splitTest (Q.split 0 example == )
toListTest :: Bool
toListTest = (Q.toList example) == [1,2,3,4,5]
test :: TestGroup (Integer -> IO TestResult)
test = Exe [
quickCheck "dropTest 1" dropTest1
--,quickCheck "dropTest 2" dropTest2
,quickCheck "dropTest 3" dropTest3
--,quickCheck "dropTest 4" dropTest4
,quickCheck "get 1" getTest1
,quickCheck "get 2" getTest2
,quickCheck "last" lastTest
,quickCheck "member" memberTest
,quickCheck "new" newTest
,quickCheck "join" propJoin
,quickCheck "tail" propTail
,quickCheck "toList" toListTest
]