summaryrefslogtreecommitdiff
path: root/src/GF/Speech/RelationQC.hs
diff options
context:
space:
mode:
authorbringert <unknown>2005-10-26 16:13:13 +0000
committerbringert <unknown>2005-10-26 16:13:13 +0000
commit3d4200d3fe6a000e76c95e434987ec1d9e3dddef (patch)
tree273406ad87efa99bb8e242a83da2ec4783f54f63 /src/GF/Speech/RelationQC.hs
parent5a9ec2714301cfee4c3a557cc3c966494c802f32 (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.hs39
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