module Test.Data.Timeout where import Test.QuickCheck (TestGroup(..), TestResult, quickCheck) import Prelude import Data.Timeout (Timeout(..)) import Data.Ordering (Ordering(..)) timeoutTest :: Bool timeoutTest = (compare Infinity Infinity == EQ) && (compare Infinity (Timeout 15) == GT) && (compare (Timeout 15) Infinity == LT) && (compare (Timeout 100) (Timeout 200) == LT) timeoutTest2 :: Bool timeoutTest2 = (Infinity == Infinity) && (Timeout 15 == Timeout 15) && not (Infinity == Timeout 15) && not (Timeout 10 == Timeout 15 ) isInfinityTest :: Bool isInfinityTest = (Infinity == Infinity) && not (Infinity == Timeout 22) test :: TestGroup (Integer -> IO TestResult) test = Exe [ quickCheck "timeoutComp" timeoutTest , quickCheck "timeoutcomp2" timeoutTest2 , quickCheck "isInfinityTest" isInfinityTest ]