diff options
| author | bringert <unknown> | 2005-10-26 16:13:13 +0000 |
|---|---|---|
| committer | bringert <unknown> | 2005-10-26 16:13:13 +0000 |
| commit | 3d4200d3fe6a000e76c95e434987ec1d9e3dddef (patch) | |
| tree | 273406ad87efa99bb8e242a83da2ec4783f54f63 /src/GF/Speech/RelationQC.hs | |
| parent | 5a9ec2714301cfee4c3a557cc3c966494c802f32 (diff) | |
Moved Graph and Relation stuff to separate modules. Added some QuickCheck properties for Relation. Improved relation datastructure and algorithms, making FA generation much faster.
Diffstat (limited to 'src/GF/Speech/RelationQC.hs')
| -rw-r--r-- | src/GF/Speech/RelationQC.hs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/GF/Speech/RelationQC.hs b/src/GF/Speech/RelationQC.hs new file mode 100644 index 000000000..157a53462 --- /dev/null +++ b/src/GF/Speech/RelationQC.hs @@ -0,0 +1,39 @@ +---------------------------------------------------------------------- +-- | +-- 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
\ No newline at end of file |
