Packages

The Phi Programming Language

Current section

Files

Jump to
phi tests Test Data Read.phi
Raw

tests/Test/Data/Read.phi

module Test.Data.Read where
import Test.QuickCheck (TestGroup(..), TestResult, quickCheck)
import Prelude
check :: forall a. Eq a => Read a => Show a => a -> Bool
check x = x == read (show x)
propBool :: Bool -> Bool
propBool = check
propInt :: Integer -> Bool
propInt = check
propDouble :: Double -> Bool
propDouble = check
propList :: [Integer] -> Bool
propList = check
propMaybe :: Maybe Integer -> Bool
propMaybe = check
propTuple :: (Integer, Bool) -> Bool
propTuple = check
propString :: String -> Bool
propString = check
propListString :: [String] -> Bool
propListString = check
propMaybeMaybe :: Maybe (Maybe Integer) -> Bool
propMaybeMaybe = check
propListMaybeString :: [Maybe String] -> Bool
propListMaybeString = check
test :: TestGroup (Integer -> IO TestResult)
test = Exe [
quickCheck "Bool" propBool,
quickCheck "Int" propInt,
-- 精度误差
-- quickCheck "Double" propDouble,
quickCheck "List" propList,
quickCheck "Maybe" propMaybe,
quickCheck "Tuple" propTuple,
quickCheck "String" propString,
quickCheck "ListString" propListString,
quickCheck "MaybeMaybe" propMaybeMaybe,
quickCheck "ListMaybeString" propListMaybeString
]