quickcheck-special-0.1.0.6: Edge cases and special values for QuickCheck Arbitrary instances

CopyrightDaniel Mendler (c) 2016
LicenseMIT (see the file LICENSE)
Maintainermail@daniel-mendler.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Test.QuickCheck.Special

Description

The standard Arbitrary instances don't generate special values. This is fixed by this package which provides the newtype Special with an Arbitrary instance. The special values are given by the SpecialValues typeclass.

Synopsis

Documentation

newtype Special a #

Additionally to the standard Arbitrary instances, this generates special values with a small probability.

Constructors

Special 

Fields

Instances
Functor Special # 
Instance details

Defined in Test.QuickCheck.Special

Methods

fmap :: (a -> b) -> Special a -> Special b #

(<$) :: a -> Special b -> Special a #

Bounded a => Bounded (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Enum a => Enum (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

succ :: Special a -> Special a #

pred :: Special a -> Special a #

toEnum :: Int -> Special a #

fromEnum :: Special a -> Int #

enumFrom :: Special a -> [Special a] #

enumFromThen :: Special a -> Special a -> [Special a] #

enumFromTo :: Special a -> Special a -> [Special a] #

enumFromThenTo :: Special a -> Special a -> Special a -> [Special a] #

Eq a => Eq (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

(==) :: Special a -> Special a -> Bool #

(/=) :: Special a -> Special a -> Bool #

Integral a => Integral (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

quot :: Special a -> Special a -> Special a #

rem :: Special a -> Special a -> Special a #

div :: Special a -> Special a -> Special a #

mod :: Special a -> Special a -> Special a #

quotRem :: Special a -> Special a -> (Special a, Special a) #

divMod :: Special a -> Special a -> (Special a, Special a) #

toInteger :: Special a -> Integer #

Num a => Num (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

(+) :: Special a -> Special a -> Special a #

(-) :: Special a -> Special a -> Special a #

(*) :: Special a -> Special a -> Special a #

negate :: Special a -> Special a #

abs :: Special a -> Special a #

signum :: Special a -> Special a #

fromInteger :: Integer -> Special a #

Ord a => Ord (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

compare :: Special a -> Special a -> Ordering #

(<) :: Special a -> Special a -> Bool #

(<=) :: Special a -> Special a -> Bool #

(>) :: Special a -> Special a -> Bool #

(>=) :: Special a -> Special a -> Bool #

max :: Special a -> Special a -> Special a #

min :: Special a -> Special a -> Special a #

Read a => Read (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Real a => Real (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

toRational :: Special a -> Rational #

Show a => Show (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

showsPrec :: Int -> Special a -> ShowS #

show :: Special a -> String #

showList :: [Special a] -> ShowS #

(Arbitrary a, SpecialValues a) => Arbitrary (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

arbitrary :: Gen (Special a) #

shrink :: Special a -> [Special a] #

CoArbitrary a => CoArbitrary (Special a) # 
Instance details

Defined in Test.QuickCheck.Special

Methods

coarbitrary :: Special a -> Gen b -> Gen b #

class SpecialValues a where #

Provides a list of special values or edge cases

Methods

specialValues :: [a] #

Finite list of special values

Instances
SpecialValues Bool 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Bool] #

SpecialValues Char 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Char] #

SpecialValues Double 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Double] #

SpecialValues Float 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Float] #

SpecialValues Int 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Int] #

SpecialValues Int8 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Int8] #

SpecialValues Int16 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Int16] #

SpecialValues Int32 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Int32] #

SpecialValues Int64 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Int64] #

SpecialValues Integer 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Integer] #

SpecialValues Natural 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Natural] #

SpecialValues Rational 
Instance details

Defined in Data.SpecialValues

SpecialValues Word 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Word] #

SpecialValues Word8 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Word8] #

SpecialValues Word16 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Word16] #

SpecialValues Word32 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Word32] #

SpecialValues Word64 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Word64] #

SpecialValues () 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [()] #

SpecialValues ByteString 
Instance details

Defined in Data.SpecialValues

SpecialValues ByteString 
Instance details

Defined in Data.SpecialValues

SpecialValues Scientific 
Instance details

Defined in Data.SpecialValues

SpecialValues Text 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Text] #

SpecialValues Text 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Text] #

SpecialValues a => SpecialValues [a] 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [[a]] #

SpecialValues a => SpecialValues (Maybe a) 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Maybe a] #

(SpecialValues a, SpecialValues b) => SpecialValues (Either a b) 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [Either a b] #

(SpecialValues a, SpecialValues b) => SpecialValues (a, b) 
Instance details

Defined in Data.SpecialValues

Methods

specialValues :: [(a, b)] #