QuickCheck 2.4 → 2.4.0.1
raw patch · 3 files changed
+9/−1 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Test.QuickCheck.Arbitrary: instance (Arbitrary a) => Arbitrary (Maybe a)
- Test.QuickCheck.Arbitrary: instance (Arbitrary a) => Arbitrary [a]
- Test.QuickCheck.Arbitrary: instance (CoArbitrary a) => CoArbitrary (Maybe a)
- Test.QuickCheck.Arbitrary: instance (CoArbitrary a) => CoArbitrary [a]
- Test.QuickCheck.Function: instance (Function a) => Function (Maybe a)
- Test.QuickCheck.Function: instance (Function a) => Function [a]
- Test.QuickCheck.Modifiers: instance (Arbitrary a) => Arbitrary (Blind a)
- Test.QuickCheck.Modifiers: instance (Arbitrary a) => Arbitrary (Fixed a)
- Test.QuickCheck.Modifiers: instance (Arbitrary a) => Arbitrary (NonEmptyList a)
- Test.QuickCheck.Modifiers: instance (Arbitrary a) => Arbitrary (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Arbitrary a) => Arbitrary (Smart a)
- Test.QuickCheck.Modifiers: instance (Enum a) => Enum (Blind a)
- Test.QuickCheck.Modifiers: instance (Enum a) => Enum (Fixed a)
- Test.QuickCheck.Modifiers: instance (Enum a) => Enum (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Enum a) => Enum (NonZero a)
- Test.QuickCheck.Modifiers: instance (Enum a) => Enum (Positive a)
- Test.QuickCheck.Modifiers: instance (Enum a) => Enum (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (Blind a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (Fixed a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (NonEmptyList a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (NonZero a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (OrderedList a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (Positive a)
- Test.QuickCheck.Modifiers: instance (Eq a) => Eq (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Integral a) => Integral (Blind a)
- Test.QuickCheck.Modifiers: instance (Integral a) => Integral (Fixed a)
- Test.QuickCheck.Modifiers: instance (Integral a) => Integral (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Integral a) => Integral (NonZero a)
- Test.QuickCheck.Modifiers: instance (Integral a) => Integral (Positive a)
- Test.QuickCheck.Modifiers: instance (Integral a) => Integral (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Num a) => Num (Blind a)
- Test.QuickCheck.Modifiers: instance (Num a) => Num (Fixed a)
- Test.QuickCheck.Modifiers: instance (Num a) => Num (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Num a) => Num (NonZero a)
- Test.QuickCheck.Modifiers: instance (Num a) => Num (Positive a)
- Test.QuickCheck.Modifiers: instance (Num a) => Num (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (Blind a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (Fixed a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (NonEmptyList a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (NonZero a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (OrderedList a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (Positive a)
- Test.QuickCheck.Modifiers: instance (Ord a) => Ord (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (Fixed a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (NonEmptyList a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (NonZero a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (OrderedList a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (Positive a)
- Test.QuickCheck.Modifiers: instance (Read a) => Read (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Real a) => Real (Blind a)
- Test.QuickCheck.Modifiers: instance (Real a) => Real (Fixed a)
- Test.QuickCheck.Modifiers: instance (Real a) => Real (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Real a) => Real (NonZero a)
- Test.QuickCheck.Modifiers: instance (Real a) => Real (Positive a)
- Test.QuickCheck.Modifiers: instance (Real a) => Real (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (Fixed a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (NonEmptyList a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (NonNegative a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (NonZero a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (OrderedList a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (Positive a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (Shrink2 a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (Shrinking s a)
- Test.QuickCheck.Modifiers: instance (Show a) => Show (Smart a)
- Test.QuickCheck.Monadic: instance (Monad m) => Monad (PropertyM m)
- Test.QuickCheck.Property: instance (Testable prop) => Testable (Gen prop)
+ Test.QuickCheck.Arbitrary: instance Arbitrary a => Arbitrary (Maybe a)
+ Test.QuickCheck.Arbitrary: instance Arbitrary a => Arbitrary [a]
+ Test.QuickCheck.Arbitrary: instance CoArbitrary a => CoArbitrary (Maybe a)
+ Test.QuickCheck.Arbitrary: instance CoArbitrary a => CoArbitrary [a]
+ Test.QuickCheck.Function: instance Function a => Function (Maybe a)
+ Test.QuickCheck.Function: instance Function a => Function [a]
+ Test.QuickCheck.Modifiers: instance Arbitrary a => Arbitrary (Blind a)
+ Test.QuickCheck.Modifiers: instance Arbitrary a => Arbitrary (Fixed a)
+ Test.QuickCheck.Modifiers: instance Arbitrary a => Arbitrary (NonEmptyList a)
+ Test.QuickCheck.Modifiers: instance Arbitrary a => Arbitrary (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Arbitrary a => Arbitrary (Smart a)
+ Test.QuickCheck.Modifiers: instance Enum a => Enum (Blind a)
+ Test.QuickCheck.Modifiers: instance Enum a => Enum (Fixed a)
+ Test.QuickCheck.Modifiers: instance Enum a => Enum (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Enum a => Enum (NonZero a)
+ Test.QuickCheck.Modifiers: instance Enum a => Enum (Positive a)
+ Test.QuickCheck.Modifiers: instance Enum a => Enum (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (Blind a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (Fixed a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (NonEmptyList a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (NonZero a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (OrderedList a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (Positive a)
+ Test.QuickCheck.Modifiers: instance Eq a => Eq (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Integral a => Integral (Blind a)
+ Test.QuickCheck.Modifiers: instance Integral a => Integral (Fixed a)
+ Test.QuickCheck.Modifiers: instance Integral a => Integral (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Integral a => Integral (NonZero a)
+ Test.QuickCheck.Modifiers: instance Integral a => Integral (Positive a)
+ Test.QuickCheck.Modifiers: instance Integral a => Integral (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Num a => Num (Blind a)
+ Test.QuickCheck.Modifiers: instance Num a => Num (Fixed a)
+ Test.QuickCheck.Modifiers: instance Num a => Num (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Num a => Num (NonZero a)
+ Test.QuickCheck.Modifiers: instance Num a => Num (Positive a)
+ Test.QuickCheck.Modifiers: instance Num a => Num (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (Blind a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (Fixed a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (NonEmptyList a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (NonZero a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (OrderedList a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (Positive a)
+ Test.QuickCheck.Modifiers: instance Ord a => Ord (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (Fixed a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (NonEmptyList a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (NonZero a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (OrderedList a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (Positive a)
+ Test.QuickCheck.Modifiers: instance Read a => Read (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Real a => Real (Blind a)
+ Test.QuickCheck.Modifiers: instance Real a => Real (Fixed a)
+ Test.QuickCheck.Modifiers: instance Real a => Real (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Real a => Real (NonZero a)
+ Test.QuickCheck.Modifiers: instance Real a => Real (Positive a)
+ Test.QuickCheck.Modifiers: instance Real a => Real (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (Fixed a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (NonEmptyList a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (NonNegative a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (NonZero a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (OrderedList a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (Positive a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (Shrink2 a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (Shrinking s a)
+ Test.QuickCheck.Modifiers: instance Show a => Show (Smart a)
+ Test.QuickCheck.Monadic: instance Monad m => Monad (PropertyM m)
+ Test.QuickCheck.Property: instance Testable prop => Testable (Gen prop)
- Test.QuickCheck: (==>) :: (Testable prop) => Bool -> prop -> Property
+ Test.QuickCheck: (==>) :: Testable prop => Bool -> prop -> Property
- Test.QuickCheck: arbitrary :: (Arbitrary a) => Gen a
+ Test.QuickCheck: arbitrary :: Arbitrary a => Gen a
- Test.QuickCheck: arbitrarySizedFractional :: (Fractional a) => Gen a
+ Test.QuickCheck: arbitrarySizedFractional :: Fractional a => Gen a
- Test.QuickCheck: arbitrarySizedIntegral :: (Num a) => Gen a
+ Test.QuickCheck: arbitrarySizedIntegral :: Num a => Gen a
- Test.QuickCheck: choose :: (Random a) => (a, a) -> Gen a
+ Test.QuickCheck: choose :: Random a => (a, a) -> Gen a
- Test.QuickCheck: classify :: (Testable prop) => Bool -> String -> prop -> Property
+ Test.QuickCheck: classify :: Testable prop => Bool -> String -> prop -> Property
- Test.QuickCheck: coarbitrary :: (CoArbitrary a) => a -> Gen c -> Gen c
+ Test.QuickCheck: coarbitrary :: CoArbitrary a => a -> Gen c -> Gen c
- Test.QuickCheck: coarbitraryIntegral :: (Integral a) => a -> Gen b -> Gen b
+ Test.QuickCheck: coarbitraryIntegral :: Integral a => a -> Gen b -> Gen b
- Test.QuickCheck: coarbitraryReal :: (Real a) => a -> Gen b -> Gen b
+ Test.QuickCheck: coarbitraryReal :: Real a => a -> Gen b -> Gen b
- Test.QuickCheck: coarbitraryShow :: (Show a) => a -> Gen b -> Gen b
+ Test.QuickCheck: coarbitraryShow :: Show a => a -> Gen b -> Gen b
- Test.QuickCheck: conjoin :: (Testable prop) => [prop] -> Property
+ Test.QuickCheck: conjoin :: Testable prop => [prop] -> Property
- Test.QuickCheck: cover :: (Testable prop) => Bool -> Int -> String -> prop -> Property
+ Test.QuickCheck: cover :: Testable prop => Bool -> Int -> String -> prop -> Property
- Test.QuickCheck: disjoin :: (Testable prop) => [prop] -> Property
+ Test.QuickCheck: disjoin :: Testable prop => [prop] -> Property
- Test.QuickCheck: expectFailure :: (Testable prop) => prop -> Property
+ Test.QuickCheck: expectFailure :: Testable prop => prop -> Property
- Test.QuickCheck: label :: (Testable prop) => String -> prop -> Property
+ Test.QuickCheck: label :: Testable prop => String -> prop -> Property
- Test.QuickCheck: mapSize :: (Testable prop) => (Int -> Int) -> prop -> Property
+ Test.QuickCheck: mapSize :: Testable prop => (Int -> Int) -> prop -> Property
- Test.QuickCheck: printTestCase :: (Testable prop) => String -> prop -> Property
+ Test.QuickCheck: printTestCase :: Testable prop => String -> prop -> Property
- Test.QuickCheck: promote :: (Monad m) => m (Gen a) -> Gen (m a)
+ Test.QuickCheck: promote :: Monad m => m (Gen a) -> Gen (m a)
- Test.QuickCheck: property :: (Testable prop) => prop -> Property
+ Test.QuickCheck: property :: Testable prop => prop -> Property
- Test.QuickCheck: quickCheck :: (Testable prop) => prop -> IO ()
+ Test.QuickCheck: quickCheck :: Testable prop => prop -> IO ()
- Test.QuickCheck: quickCheckResult :: (Testable prop) => prop -> IO Result
+ Test.QuickCheck: quickCheckResult :: Testable prop => prop -> IO Result
- Test.QuickCheck: quickCheckWith :: (Testable prop) => Args -> prop -> IO ()
+ Test.QuickCheck: quickCheckWith :: Testable prop => Args -> prop -> IO ()
- Test.QuickCheck: quickCheckWithResult :: (Testable prop) => Args -> prop -> IO Result
+ Test.QuickCheck: quickCheckWithResult :: Testable prop => Args -> prop -> IO Result
- Test.QuickCheck: ranges :: (Integral a) => a -> a -> Str
+ Test.QuickCheck: ranges :: Integral a => a -> a -> Str
- Test.QuickCheck: sample :: (Show a) => Gen a -> IO ()
+ Test.QuickCheck: sample :: Show a => Gen a -> IO ()
- Test.QuickCheck: shrink :: (Arbitrary a) => a -> [a]
+ Test.QuickCheck: shrink :: Arbitrary a => a -> [a]
- Test.QuickCheck: shrinkInit :: (ShrinkState s a) => a -> s
+ Test.QuickCheck: shrinkInit :: ShrinkState s a => a -> s
- Test.QuickCheck: shrinkIntegral :: (Integral a) => a -> [a]
+ Test.QuickCheck: shrinkIntegral :: Integral a => a -> [a]
- Test.QuickCheck: shrinkRealFrac :: (RealFrac a) => a -> [a]
+ Test.QuickCheck: shrinkRealFrac :: RealFrac a => a -> [a]
- Test.QuickCheck: shrinkState :: (ShrinkState s a) => a -> s -> [(a, s)]
+ Test.QuickCheck: shrinkState :: ShrinkState s a => a -> s -> [(a, s)]
- Test.QuickCheck: shrinking :: (Testable prop) => (a -> [a]) -> a -> (a -> prop) -> Property
+ Test.QuickCheck: shrinking :: Testable prop => (a -> [a]) -> a -> (a -> prop) -> Property
- Test.QuickCheck: variant :: (Integral n) => n -> Gen a -> Gen a
+ Test.QuickCheck: variant :: Integral n => n -> Gen a -> Gen a
- Test.QuickCheck: vector :: (Arbitrary a) => Int -> Gen [a]
+ Test.QuickCheck: vector :: Arbitrary a => Int -> Gen [a]
- Test.QuickCheck: verbose :: (Testable prop) => prop -> Property
+ Test.QuickCheck: verbose :: Testable prop => prop -> Property
- Test.QuickCheck: verboseCheck :: (Testable prop) => prop -> IO ()
+ Test.QuickCheck: verboseCheck :: Testable prop => prop -> IO ()
- Test.QuickCheck: verboseCheckResult :: (Testable prop) => prop -> IO Result
+ Test.QuickCheck: verboseCheckResult :: Testable prop => prop -> IO Result
- Test.QuickCheck: verboseCheckWith :: (Testable prop) => Args -> prop -> IO ()
+ Test.QuickCheck: verboseCheckWith :: Testable prop => Args -> prop -> IO ()
- Test.QuickCheck: verboseCheckWithResult :: (Testable prop) => Args -> prop -> IO Result
+ Test.QuickCheck: verboseCheckWithResult :: Testable prop => Args -> prop -> IO Result
- Test.QuickCheck: whenFail :: (Testable prop) => IO () -> prop -> Property
+ Test.QuickCheck: whenFail :: Testable prop => IO () -> prop -> Property
- Test.QuickCheck: whenFail' :: (Testable prop) => IO () -> prop -> Property
+ Test.QuickCheck: whenFail' :: Testable prop => IO () -> prop -> Property
- Test.QuickCheck: within :: (Testable prop) => Int -> prop -> Property
+ Test.QuickCheck: within :: Testable prop => Int -> prop -> Property
- Test.QuickCheck.Arbitrary: arbitrary :: (Arbitrary a) => Gen a
+ Test.QuickCheck.Arbitrary: arbitrary :: Arbitrary a => Gen a
- Test.QuickCheck.Arbitrary: arbitrarySizedFractional :: (Fractional a) => Gen a
+ Test.QuickCheck.Arbitrary: arbitrarySizedFractional :: Fractional a => Gen a
- Test.QuickCheck.Arbitrary: arbitrarySizedIntegral :: (Num a) => Gen a
+ Test.QuickCheck.Arbitrary: arbitrarySizedIntegral :: Num a => Gen a
- Test.QuickCheck.Arbitrary: coarbitrary :: (CoArbitrary a) => a -> Gen c -> Gen c
+ Test.QuickCheck.Arbitrary: coarbitrary :: CoArbitrary a => a -> Gen c -> Gen c
- Test.QuickCheck.Arbitrary: coarbitraryIntegral :: (Integral a) => a -> Gen b -> Gen b
+ Test.QuickCheck.Arbitrary: coarbitraryIntegral :: Integral a => a -> Gen b -> Gen b
- Test.QuickCheck.Arbitrary: coarbitraryReal :: (Real a) => a -> Gen b -> Gen b
+ Test.QuickCheck.Arbitrary: coarbitraryReal :: Real a => a -> Gen b -> Gen b
- Test.QuickCheck.Arbitrary: coarbitraryShow :: (Show a) => a -> Gen b -> Gen b
+ Test.QuickCheck.Arbitrary: coarbitraryShow :: Show a => a -> Gen b -> Gen b
- Test.QuickCheck.Arbitrary: shrink :: (Arbitrary a) => a -> [a]
+ Test.QuickCheck.Arbitrary: shrink :: Arbitrary a => a -> [a]
- Test.QuickCheck.Arbitrary: shrinkIntegral :: (Integral a) => a -> [a]
+ Test.QuickCheck.Arbitrary: shrinkIntegral :: Integral a => a -> [a]
- Test.QuickCheck.Arbitrary: shrinkRealFrac :: (RealFrac a) => a -> [a]
+ Test.QuickCheck.Arbitrary: shrinkRealFrac :: RealFrac a => a -> [a]
- Test.QuickCheck.Arbitrary: vector :: (Arbitrary a) => Int -> Gen [a]
+ Test.QuickCheck.Arbitrary: vector :: Arbitrary a => Int -> Gen [a]
- Test.QuickCheck.Function: function :: (Function a) => (a -> b) -> (a :-> b)
+ Test.QuickCheck.Function: function :: Function a => (a -> b) -> (a :-> b)
- Test.QuickCheck.Function: functionMap :: (Function b) => (a -> b) -> (b -> a) -> (a -> c) -> (a :-> c)
+ Test.QuickCheck.Function: functionMap :: Function b => (a -> b) -> (b -> a) -> (a -> c) -> (a :-> c)
- Test.QuickCheck.Gen: choose :: (Random a) => (a, a) -> Gen a
+ Test.QuickCheck.Gen: choose :: Random a => (a, a) -> Gen a
- Test.QuickCheck.Gen: promote :: (Monad m) => m (Gen a) -> Gen (m a)
+ Test.QuickCheck.Gen: promote :: Monad m => m (Gen a) -> Gen (m a)
- Test.QuickCheck.Gen: sample :: (Show a) => Gen a -> IO ()
+ Test.QuickCheck.Gen: sample :: Show a => Gen a -> IO ()
- Test.QuickCheck.Gen: variant :: (Integral n) => n -> Gen a -> Gen a
+ Test.QuickCheck.Gen: variant :: Integral n => n -> Gen a -> Gen a
- Test.QuickCheck.Modifiers: shrinkInit :: (ShrinkState s a) => a -> s
+ Test.QuickCheck.Modifiers: shrinkInit :: ShrinkState s a => a -> s
- Test.QuickCheck.Modifiers: shrinkState :: (ShrinkState s a) => a -> s -> [(a, s)]
+ Test.QuickCheck.Modifiers: shrinkState :: ShrinkState s a => a -> s -> [(a, s)]
- Test.QuickCheck.Monadic: assert :: (Monad m) => Bool -> PropertyM m ()
+ Test.QuickCheck.Monadic: assert :: Monad m => Bool -> PropertyM m ()
- Test.QuickCheck.Monadic: monadic :: (Monad m) => (m Property -> Property) -> PropertyM m a -> Property
+ Test.QuickCheck.Monadic: monadic :: Monad m => (m Property -> Property) -> PropertyM m a -> Property
- Test.QuickCheck.Monadic: monadic' :: (Monad m) => PropertyM m a -> Gen (m Property)
+ Test.QuickCheck.Monadic: monadic' :: Monad m => PropertyM m a -> Gen (m Property)
- Test.QuickCheck.Monadic: monitor :: (Monad m) => (Property -> Property) -> PropertyM m ()
+ Test.QuickCheck.Monadic: monitor :: Monad m => (Property -> Property) -> PropertyM m ()
- Test.QuickCheck.Monadic: pre :: (Monad m) => Bool -> PropertyM m ()
+ Test.QuickCheck.Monadic: pre :: Monad m => Bool -> PropertyM m ()
- Test.QuickCheck.Monadic: run :: (Monad m) => m a -> PropertyM m a
+ Test.QuickCheck.Monadic: run :: Monad m => m a -> PropertyM m a
- Test.QuickCheck.Monadic: wp :: (Monad m) => m a -> (a -> PropertyM m b) -> PropertyM m b
+ Test.QuickCheck.Monadic: wp :: Monad m => m a -> (a -> PropertyM m b) -> PropertyM m b
- Test.QuickCheck.Property: (==>) :: (Testable prop) => Bool -> prop -> Property
+ Test.QuickCheck.Property: (==>) :: Testable prop => Bool -> prop -> Property
- Test.QuickCheck.Property: callback :: (Testable prop) => Callback -> prop -> Property
+ Test.QuickCheck.Property: callback :: Testable prop => Callback -> prop -> Property
- Test.QuickCheck.Property: classify :: (Testable prop) => Bool -> String -> prop -> Property
+ Test.QuickCheck.Property: classify :: Testable prop => Bool -> String -> prop -> Property
- Test.QuickCheck.Property: conjoin :: (Testable prop) => [prop] -> Property
+ Test.QuickCheck.Property: conjoin :: Testable prop => [prop] -> Property
- Test.QuickCheck.Property: cover :: (Testable prop) => Bool -> Int -> String -> prop -> Property
+ Test.QuickCheck.Property: cover :: Testable prop => Bool -> Int -> String -> prop -> Property
- Test.QuickCheck.Property: disjoin :: (Testable prop) => [prop] -> Property
+ Test.QuickCheck.Property: disjoin :: Testable prop => [prop] -> Property
- Test.QuickCheck.Property: expectFailure :: (Testable prop) => prop -> Property
+ Test.QuickCheck.Property: expectFailure :: Testable prop => prop -> Property
- Test.QuickCheck.Property: label :: (Testable prop) => String -> prop -> Property
+ Test.QuickCheck.Property: label :: Testable prop => String -> prop -> Property
- Test.QuickCheck.Property: mapProp :: (Testable prop) => (Prop -> Prop) -> prop -> Property
+ Test.QuickCheck.Property: mapProp :: Testable prop => (Prop -> Prop) -> prop -> Property
- Test.QuickCheck.Property: mapResult :: (Testable prop) => (Result -> Result) -> prop -> Property
+ Test.QuickCheck.Property: mapResult :: Testable prop => (Result -> Result) -> prop -> Property
- Test.QuickCheck.Property: mapRoseResult :: (Testable prop) => (Rose Result -> Rose Result) -> prop -> Property
+ Test.QuickCheck.Property: mapRoseResult :: Testable prop => (Rose Result -> Rose Result) -> prop -> Property
- Test.QuickCheck.Property: mapSize :: (Testable prop) => (Int -> Int) -> prop -> Property
+ Test.QuickCheck.Property: mapSize :: Testable prop => (Int -> Int) -> prop -> Property
- Test.QuickCheck.Property: mapTotalResult :: (Testable prop) => (Result -> Result) -> prop -> Property
+ Test.QuickCheck.Property: mapTotalResult :: Testable prop => (Result -> Result) -> prop -> Property
- Test.QuickCheck.Property: morallyDubiousIOProperty :: (Testable prop) => IO prop -> Property
+ Test.QuickCheck.Property: morallyDubiousIOProperty :: Testable prop => IO prop -> Property
- Test.QuickCheck.Property: noShrinking :: (Testable prop) => prop -> Property
+ Test.QuickCheck.Property: noShrinking :: Testable prop => prop -> Property
- Test.QuickCheck.Property: printTestCase :: (Testable prop) => String -> prop -> Property
+ Test.QuickCheck.Property: printTestCase :: Testable prop => String -> prop -> Property
- Test.QuickCheck.Property: property :: (Testable prop) => prop -> Property
+ Test.QuickCheck.Property: property :: Testable prop => prop -> Property
- Test.QuickCheck.Property: shrinking :: (Testable prop) => (a -> [a]) -> a -> (a -> prop) -> Property
+ Test.QuickCheck.Property: shrinking :: Testable prop => (a -> [a]) -> a -> (a -> prop) -> Property
- Test.QuickCheck.Property: verbose :: (Testable prop) => prop -> Property
+ Test.QuickCheck.Property: verbose :: Testable prop => prop -> Property
- Test.QuickCheck.Property: whenFail :: (Testable prop) => IO () -> prop -> Property
+ Test.QuickCheck.Property: whenFail :: Testable prop => IO () -> prop -> Property
- Test.QuickCheck.Property: whenFail' :: (Testable prop) => IO () -> prop -> Property
+ Test.QuickCheck.Property: whenFail' :: Testable prop => IO () -> prop -> Property
- Test.QuickCheck.Property: within :: (Testable prop) => Int -> prop -> Property
+ Test.QuickCheck.Property: within :: Testable prop => Int -> prop -> Property
- Test.QuickCheck.Test: quickCheck :: (Testable prop) => prop -> IO ()
+ Test.QuickCheck.Test: quickCheck :: Testable prop => prop -> IO ()
- Test.QuickCheck.Test: quickCheckResult :: (Testable prop) => prop -> IO Result
+ Test.QuickCheck.Test: quickCheckResult :: Testable prop => prop -> IO Result
- Test.QuickCheck.Test: quickCheckWith :: (Testable prop) => Args -> prop -> IO ()
+ Test.QuickCheck.Test: quickCheckWith :: Testable prop => Args -> prop -> IO ()
- Test.QuickCheck.Test: quickCheckWithResult :: (Testable prop) => Args -> prop -> IO Result
+ Test.QuickCheck.Test: quickCheckWithResult :: Testable prop => Args -> prop -> IO Result
- Test.QuickCheck.Test: verboseCheck :: (Testable prop) => prop -> IO ()
+ Test.QuickCheck.Test: verboseCheck :: Testable prop => prop -> IO ()
- Test.QuickCheck.Test: verboseCheckResult :: (Testable prop) => prop -> IO Result
+ Test.QuickCheck.Test: verboseCheckResult :: Testable prop => prop -> IO Result
- Test.QuickCheck.Test: verboseCheckWith :: (Testable prop) => Args -> prop -> IO ()
+ Test.QuickCheck.Test: verboseCheckWith :: Testable prop => Args -> prop -> IO ()
- Test.QuickCheck.Test: verboseCheckWithResult :: (Testable prop) => Args -> prop -> IO Result
+ Test.QuickCheck.Test: verboseCheckWithResult :: Testable prop => Args -> prop -> IO Result
- Test.QuickCheck.Text: ranges :: (Integral a) => a -> a -> Str
+ Test.QuickCheck.Text: ranges :: Integral a => a -> a -> Str
- Test.QuickCheck.Text: showErr :: (Show a) => a -> String
+ Test.QuickCheck.Text: showErr :: Show a => a -> String
Files
- QuickCheck.cabal +1/−1
- Test/QuickCheck.hs +1/−0
- Test/QuickCheck/Property.hs +7/−0
QuickCheck.cabal view
@@ -1,5 +1,5 @@ Name: QuickCheck-Version: 2.4+Version: 2.4.0.1 Cabal-Version: >= 1.2 Build-type: Simple License: BSD3
Test/QuickCheck.hs view
@@ -79,6 +79,7 @@ , (==>) , forAll , forAllShrink+ -- *** Experimental combinators for conjunction and disjunction , (.&.) , (.&&.) , conjoin
Test/QuickCheck/Property.hs view
@@ -352,15 +352,20 @@ shrinking shrinker x $ \x' -> printTestCase (show x') (pf x') +-- | Nondeterministic choice: 'p1' '.&.' 'p2' picks randomly one of+-- 'p1' and 'p2' to test. If you test the property 100 times it+-- makes 100 random choices. (.&.) :: (Testable prop1, Testable prop2) => prop1 -> prop2 -> Property p1 .&. p2 = arbitrary >>= \b -> printTestCase (if b then "LHS" else "RHS") $ if b then property p1 else property p2 +-- | Conjunction: 'p1' '.&&.' 'p2' passes if both 'p1' and 'p2' pass. (.&&.) :: (Testable prop1, Testable prop2) => prop1 -> prop2 -> Property p1 .&&. p2 = conjoin [property p1, property p2] +-- | Take the conjunction of several properties. conjoin :: Testable prop => [prop] -> Property conjoin ps = do roses <- mapM (fmap unProp . property) ps@@ -385,9 +390,11 @@ Just False -> rose2 Nothing -> rose2 +-- | Disjunction: 'p1' '.||.' 'p2' passes unless 'p1' and 'p2' simultaneously fail. (.||.) :: (Testable prop1, Testable prop2) => prop1 -> prop2 -> Property p1 .||. p2 = disjoin [property p1, property p2] +-- | Take the disjunction of several properties. disjoin :: Testable prop => [prop] -> Property disjoin ps = do roses <- mapM (fmap unProp . property) ps