flexiwrap-smallcheck-0.0.1: Data/Flex/Serial/SmallCheck/Wrap.hs
-- $Header: c:/Source/Haskell/Wrapper/smallcheck/Data/Flex/Serial/SmallCheck/RCS/Wrap.hs,v 1.1 2011/09/21 00:14:44 dosuser Exp dosuser $
-- | SmallCheck tests for Data.Flex.Serial.Wrap
module Data.Flex.Serial.SmallCheck.Wrap where
import Test.SmallCheck
import Data.Type.TList (TNil(..), (:*:)(..))
import Data.Flex.Wrap (flexiWrap)
import Data.Flex.Serial.Wrap
prop_defaultSeries_is_transparent i = wx ai == map w (x ai)
where
w = flexiWrap TNil
x = series :: Series Int
wx = series
ai = abs i
prop_defaultCoseries_is_transparent i x = f (w x) == f x
where
ai = abs i
w = flexiWrap TNil
f :: Serial a => a -> [Int]
f y = map ($ y) $ coseries series ai
types = x :: Char
prop_transparentSeries_is_transparent i = wx ai == map w (x ai)
where
w = flexiWrap (FWTransparentSerial :*: TNil)
x = series :: Series Char
wx = series
ai = abs i
prop_transparentCoseries_is_transparent i x = f (w x) == f x
where
ai = abs i
w = flexiWrap (FWTransparentSerial :*: TNil)
f :: Serial a => a -> [Char]
f y = map ($ y) $ coseries series ai
types = x :: Int
prop_explicitDefaultSeries_is_transparent i = wx ai == map w (x ai)
where
w = flexiWrap (FWDefaultSerial :*: TNil)
x = series :: Series Char
wx = series
ai = abs i
prop_explicitDefaultCoseries_is_transparent i x = f (w x) == f x
where
ai = abs i
w = flexiWrap (FWDefaultSerial :*: TNil)
f :: Serial a => a -> [Char]
f y = map ($ y) $ coseries series ai
types = x :: Int
testSerial :: IO ()
testSerial = do
smallCheck 2 prop_defaultSeries_is_transparent
smallCheck 2 prop_defaultCoseries_is_transparent
smallCheck 2 prop_transparentSeries_is_transparent
smallCheck 2 prop_transparentCoseries_is_transparent
smallCheck 2 prop_explicitDefaultSeries_is_transparent
smallCheck 2 prop_explicitDefaultCoseries_is_transparent
-- vim: expandtab:tabstop=4:shiftwidth=4