forked from GitHub/gf-core
40 lines
1.3 KiB
Haskell
40 lines
1.3 KiB
Haskell
----------------------------------------------------------------------
|
|
-- |
|
|
-- Module : RelationQC
|
|
-- Maintainer : BB
|
|
-- Stability : (stable)
|
|
-- Portability : (portable)
|
|
--
|
|
-- > CVS $Date: 2005/10/26 17:13:13 $
|
|
-- > CVS $Author: bringert $
|
|
-- > CVS $Revision: 1.1 $
|
|
--
|
|
-- QuickCheck properties for GF.Speech.Relation
|
|
-----------------------------------------------------------------------------
|
|
|
|
module GF.Speech.RelationQC where
|
|
|
|
import GF.Speech.Relation
|
|
|
|
import Test.QuickCheck
|
|
|
|
prop_transitiveClosure_trans :: [(Int,Int)] -> Bool
|
|
prop_transitiveClosure_trans ps = isTransitive (transitiveClosure (mkRel ps))
|
|
|
|
prop_symmetricSubrelation_symm :: [(Int,Int)] -> Bool
|
|
prop_symmetricSubrelation_symm ps = isSymmetric (symmetricSubrelation (mkRel ps))
|
|
|
|
prop_symmetricSubrelation_sub :: [(Int,Int)] -> Bool
|
|
prop_symmetricSubrelation_sub ps = symmetricSubrelation r `isSubRelationOf` r
|
|
where r = mkRel ps
|
|
|
|
prop_symmetricClosure_symm :: [(Int,Int)] -> Bool
|
|
prop_symmetricClosure_symm ps = isSymmetric (symmetricClosure (mkRel ps))
|
|
|
|
prop_reflexiveClosure_refl :: [(Int,Int)] -> Bool
|
|
prop_reflexiveClosure_refl ps = isReflexive (reflexiveClosure (mkRel ps))
|
|
|
|
prop_mkEquiv_equiv :: [(Int,Int)] -> Bool
|
|
prop_mkEquiv_equiv ps = isEquivalence (mkEquiv ps)
|
|
where mkEquiv = transitiveClosure . symmetricClosure . reflexiveClosure . mkRel
|