@@ -2,6 +2,9 @@ module Test.StrongCheck.Arbitrary where
22
33import Prelude
44
5+ import Control.Monad.Gen as CMG
6+ import Control.Monad.Gen.Common as CMGC
7+
58import Data.Array as A
69import Data.Array.Partial as AP
710import Data.Char (toCharCode )
@@ -41,9 +44,7 @@ class Coarbitrary t where
4144 coarbitrary :: forall r . t -> Gen r -> Gen r
4245
4346instance arbBoolean :: Arbitrary Boolean where
44- arbitrary = do
45- n <- uniform
46- pure (n < 0.5 )
47+ arbitrary = CMG .chooseBool
4748
4849instance coarbBoolean :: Coarbitrary Boolean where
4950 coarbitrary true = perturbGen 1.0
@@ -114,24 +115,20 @@ instance coarbFunction :: (Arbitrary a, Coarbitrary b) => Coarbitrary (a -> b) w
114115 coarbitrary (f xs) gen
115116
116117instance arbTuple :: (Arbitrary a , Arbitrary b ) => Arbitrary (Tuple a b ) where
117- arbitrary = Tuple <$> arbitrary <*> arbitrary
118+ arbitrary = CMGC .genTuple arbitrary arbitrary
118119
119120instance coarbTuple :: (Coarbitrary a , Coarbitrary b ) => Coarbitrary (Tuple a b ) where
120121 coarbitrary (Tuple a b) = coarbitrary a >>> coarbitrary b
121122
122123instance arbMaybe :: Arbitrary a => Arbitrary (Maybe a ) where
123- arbitrary = do
124- b <- arbitrary
125- if b then pure Nothing else Just <$> arbitrary
124+ arbitrary = CMGC .genMaybe arbitrary
126125
127126instance coarbMaybe :: Coarbitrary a => Coarbitrary (Maybe a ) where
128127 coarbitrary Nothing = perturbGen 1.0
129128 coarbitrary (Just a) = coarbitrary a
130129
131130instance arbEither :: (Arbitrary a , Arbitrary b ) => Arbitrary (Either a b ) where
132- arbitrary = do
133- b <- arbitrary
134- if b then Left <$> arbitrary else Right <$> arbitrary
131+ arbitrary = CMGC .genEither arbitrary arbitrary
135132
136133instance coarbEither :: (Coarbitrary a , Coarbitrary b ) => Coarbitrary (Either a b ) where
137134 coarbitrary (Left a) = coarbitrary a
@@ -144,7 +141,7 @@ instance coarbList :: Coarbitrary a => Coarbitrary (List a) where
144141 coarbitrary = coarbitrary <<< A .fromFoldable
145142
146143instance arbitraryIdentity :: Arbitrary a => Arbitrary (Identity a ) where
147- arbitrary = Identity <$> arbitrary
144+ arbitrary = CMGC .genIdentity arbitrary
148145
149146instance coarbIdentity :: Coarbitrary a => Coarbitrary (Identity a ) where
150147 coarbitrary (Identity a) = coarbitrary a
0 commit comments