cf-0.4: tests/Tests.hs
{-# LANGUAGE TemplateHaskell #-}
module Main where
import Data.Maybe
import Math.ContinuedFraction.Effective
import Math.ContinuedFraction.Interval
import Test.QuickCheck
import Test.QuickCheck.Function
import Test.Framework.TH
import Test.Framework.Providers.QuickCheck2
instance Arbitrary Extended where
arbitrary = do
b <- arbitrary :: Gen Bool
if b then
return Infinity
else
fmap Finite arbitrary
instance Arbitrary Interval where
arbitrary = do
(i, s) <- suchThat arbitrary (\(i,s) -> i /= s) :: Gen (Extended, Extended)
return $ Interval i s
prop_sensibleEmittable x = isJust $ existsEmittable (primitiveBound x)
where types = x :: Integer
prop_sensiblePrimitiveBound x = fromInteger x `elementOf` primitiveBound x
where types = x :: Integer
prop_sensibleMergeInterval a b = a `subset` ab && b `subset` ab
where types = (a :: Interval, b :: Interval)
ab = a `mergeInterval` b
main :: IO ()
main = $defaultMainGenerator