compdata-0.5: testsuite/tests/Data/Comp/Examples/Param.hs
{-# LANGUAGE TypeOperators #-}
module Data.Comp.Examples.Param where
import Examples.Param.Names as Names
import Examples.Param.Graph as Graph
import Data.Comp.Param
import Test.Framework
import Test.Framework.Providers.QuickCheck2
import Test.QuickCheck
import Test.Utils
--------------------------------------------------------------------------------
-- Test Suits
--------------------------------------------------------------------------------
tests = testGroup "Parametric Compositional Data Types" [
testProperty "names" namesTest,
testProperty "graph" graphTest
]
--------------------------------------------------------------------------------
-- Properties
--------------------------------------------------------------------------------
instance (EqD f, PEq p) => EqD (f :&: p) where
eqD (v1 :&: p1) (v2 :&: p2) = do b1 <- peq p1 p2
b2 <- eqD v1 v2
return $ b1 && b2
namesTest = en == en' && ep == ep'
graphTest = g == g && n == 5 && f == [0,2,1,2]