-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Randomly generated fake data
--
-- QuickCheck generates completely random data for the purposes of test
-- and catching corner cases. The fake package provides tools for
-- generating data that looks plausibly real.
@package fake
@version 0.1
module Fake.Provider.Lang
-- | Newtype wrapper representing a single word.
newtype SingleWord
SingleWord :: Text -> SingleWord
[unSingleWord] :: SingleWord -> Text
capitalize :: SingleWord -> SingleWord
lowerize :: SingleWord -> SingleWord
data Phrase
phrase :: [FGen SingleWord] -> FGen Phrase
phraseText :: Phrase -> Text
instance GHC.Base.Monoid Fake.Provider.Lang.Phrase
instance GHC.Show.Show Fake.Provider.Lang.Phrase
instance GHC.Classes.Ord Fake.Provider.Lang.Phrase
instance GHC.Classes.Eq Fake.Provider.Lang.Phrase
instance Data.String.IsString Fake.Provider.Lang.SingleWord
instance GHC.Base.Monoid Fake.Provider.Lang.SingleWord
instance GHC.Show.Show Fake.Provider.Lang.SingleWord
instance GHC.Classes.Ord Fake.Provider.Lang.SingleWord
instance GHC.Classes.Eq Fake.Provider.Lang.SingleWord
-- | Generate fake values with full constructor coverage
--
-- The idea behind Fake.Cover is that although exhaustive testing is
-- highly exponential, you can cover a large portion of the likely
-- problem cases by exercising all the constructors of a data type and
-- associated fields. This approach only requires a sub-exponential
-- number of cases--far fewer than what you need for the exhaustive
-- approach. The number of test cases needed to ensure that you have full
-- coverage of all the constructors is given by the following relations
-- for product and sum types:
--
-- numCases (a, b) = max (numCases a) (numCases b)
--
-- numCases (Either a b) = numCases a + numCases b
--
-- See the test suite for examples of how many values are generated for
-- different data types.
module Fake.Cover
-- | A generic function that gives you full constructor coverage for a data
-- type. Using this function as the Cover instance for a data type
-- avoids the need to explicitly enumerate values that include coverage
-- of all constructors.
gcover :: (Generic a, GCover ga, ga ~ Rep a) => Coverage a
-- | Coverage is a list of values, implemented here with a newtype around a
-- list of fake value generators. It's [FGen a] instead of
-- FGen [a] because we don't want to have to evaluate the
-- FGen monad to work with coverage lists.
newtype Coverage a
Coverage :: [FGen a] -> Coverage a
[unCoverage] :: Coverage a -> [FGen a]
-- | A type class that generates a list of values giving full construcor
-- coverage for data types. You can write your own instances by hand or
-- you can use the default instance which calls gcover provided
-- your data type has a Generic instance.
class Cover a
cover :: Cover a => Coverage a
cover :: (Cover a, Generic a, GCover ga, ga ~ Rep a) => Coverage a
instance GHC.Base.Functor Fake.Cover.Coverage
instance Fake.Cover.Cover ()
instance Fake.Cover.Cover a => Fake.Cover.Cover (GHC.Base.Maybe a)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b) => Fake.Cover.Cover (Data.Either.Either a b)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b) => Fake.Cover.Cover (a, b)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b, Fake.Cover.Cover c) => Fake.Cover.Cover (a, b, c)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b, Fake.Cover.Cover c, Fake.Cover.Cover d) => Fake.Cover.Cover (a, b, c, d)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b, Fake.Cover.Cover c, Fake.Cover.Cover d, Fake.Cover.Cover e) => Fake.Cover.Cover (a, b, c, d, e)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b, Fake.Cover.Cover c, Fake.Cover.Cover d, Fake.Cover.Cover e, Fake.Cover.Cover f) => Fake.Cover.Cover (a, b, c, d, e, f)
instance (Fake.Cover.Cover a, Fake.Cover.Cover b, Fake.Cover.Cover c, Fake.Cover.Cover d, Fake.Cover.Cover e, Fake.Cover.Cover f, Fake.Cover.Cover g) => Fake.Cover.Cover (a, b, c, d, e, f, g)
instance Fake.Cover.Cover c => Fake.Cover.GCover (GHC.Generics.K1 i c)
instance Fake.Cover.GCover GHC.Generics.U1
instance Fake.Cover.GCover f => Fake.Cover.GCover (GHC.Generics.M1 i c f)
instance (Fake.Cover.GCover a, Fake.Cover.GCover b) => Fake.Cover.GCover (a GHC.Generics.:*: b)
instance (Fake.Cover.GCover a, Fake.Cover.GCover b) => Fake.Cover.GCover (a GHC.Generics.:+: b)
instance GHC.Base.Applicative Fake.Cover.Coverage
instance GHC.Base.Alternative Fake.Cover.Coverage
module Fake.Combinators
-- | Generates a random element in the given inclusive range.
fromRange :: Random a => (a, a) -> FGen a
-- | Generates a random element over the natural range of a.
pickAny :: Random a => FGen a
-- | Generates a value that satisfies a predicate.
suchThat :: FGen a -> (a -> Bool) -> FGen a
-- | Tries to generate a value that satisfies a predicate.
suchThatMaybe :: FGen a -> (a -> Bool) -> FGen (Maybe a)
-- | Randomly uses one of the given generators. The input list must be
-- non-empty.
oneof :: [FGen a] -> FGen a
-- | Chooses one of the given generators, with a weighted random
-- distribution. The input list must be non-empty.
frequency :: [(Int, FGen a)] -> FGen a
-- | Generates one of the given values. The input list must be non-empty.
elements :: [a] -> FGen a
-- | Generates a random subsequence of the given list.
sublistOf :: [a] -> FGen [a]
-- | Generates a random permutation of the given list.
shuffle :: [a] -> FGen [a]
-- | Generates a list of random length.
listUpTo :: Int -> FGen a -> FGen [a]
-- | Generates a non-empty list of random length. The maximum length
-- depends on the size parameter.
listUpTo1 :: Int -> FGen a -> FGen [a]
-- | Generates a list of the given length.
vectorOf :: Int -> FGen a -> FGen [a]
-- | Generates an infinite list.
infiniteListOf :: FGen a -> FGen [a]
-- | Generates an ordered list.
orderedList :: (Ord a) => Int -> FGen a -> FGen [a]
-- | Generate a value of an enumeration in the range [from, to].
fakeEnumFromTo :: Enum a => a -> a -> FGen a
-- | Generate a value of an enumeration in the range [minBound, maxBound].
fakeEnum :: (Enum a, Bounded a) => FGen a
-- | fakeEnumFromTo specialized to Int.
fakeInt :: Int -> Int -> FGen Int
-- | fakeEnumFromTo specialized to Int.
fakeDouble :: Double -> Double -> FGen Double
fakeDigit :: FGen Char
fakeDigitNonzero :: FGen Char
fakeLetter :: FGen Char
fakeCapitalLetter :: FGen Char
module Fake.Provider.Person.EN_US
personName :: FGen Text
femaleName :: FGen Text
maleName :: FGen Text
femalePrefix :: FGen SingleWord
malePrefix :: FGen SingleWord
femaleSuffix :: FGen SingleWord
maleSuffix :: FGen SingleWord
firstName :: FGen SingleWord
femaleFirstName :: FGen SingleWord
maleFirstName :: FGen SingleWord
lastName :: FGen SingleWord
module Fake.Provider.Locale
-- | Generates fake locales. "en_US", "de_CH", etc...
fakeLocale :: FGen String
-- | A map of all the locales
localeMap :: Map String [String]
module Fake.Provider.Lang.EN_US
adjective :: FGen SingleWord
noun :: FGen SingleWord
verb :: FGen SingleWord
adverb :: FGen SingleWord
module Fake.Provider.DateTime
-- | Generates a random UTCTime in the range [from, to].
utcBetween :: UTCTime -> UTCTime -> FGen UTCTime
-- | Generates a random Day in the range [from, to].
dayBetween :: Day -> Day -> FGen Day
dayBetweenYears :: Integer -> Integer -> FGen Day
timeBetweenHours :: Int -> Int -> FGen DiffTime
utcBetweenYears :: Integer -> Integer -> FGen UTCTime
module Fake.Provider.UserAgent
-- | Fake user agent strings using a uniform distribution across the five
-- major browsers.
userAgent :: FGen String
-- | Fake user agent strings using a real-world distribution across the
-- five major browsers.
userAgentRealDist :: FGen String
-- | Fake user agent strings for Chrome.
chromeUserAgent :: FGen String
-- | Fake user agent strings for Internet Explorer.
internetExplorerUserAgent :: FGen String
underscoreToDash :: Char -> Char
dayStr :: Day -> String
-- | Fake user agent strings for Firefox.
firefoxUserAgent :: FGen String
-- | Fake user agent strings for Safari.
safariUserAgent :: FGen String
-- | Fake user agent strings for Opera.
operaUserAgent :: FGen String
fakePlatform :: FGen String
windowsPlatform :: FGen String
linuxPlatform :: FGen String
macPlatform :: FGen String
linuxProcessor :: FGen String
macProcessor :: FGen String
module Fake.Class
-- | Random generation of fake values.
class Fake a
-- | A generator for values of the given type.
fake :: Fake a => FGen a
instance Fake.Class.Fake ()
instance Fake.Class.Fake GHC.Types.Bool
instance Fake.Class.Fake GHC.Types.Ordering
instance Fake.Class.Fake a => Fake.Class.Fake (GHC.Base.Maybe a)
instance (Fake.Class.Fake a, Fake.Class.Fake b) => Fake.Class.Fake (Data.Either.Either a b)
instance (Fake.Class.Fake a, Fake.Class.Fake b) => Fake.Class.Fake (a, b)
instance (Fake.Class.Fake a, Fake.Class.Fake b, Fake.Class.Fake c) => Fake.Class.Fake (a, b, c)
instance (Fake.Class.Fake a, Fake.Class.Fake b, Fake.Class.Fake c, Fake.Class.Fake d) => Fake.Class.Fake (a, b, c, d)
instance (Fake.Class.Fake a, Fake.Class.Fake b, Fake.Class.Fake c, Fake.Class.Fake d, Fake.Class.Fake e) => Fake.Class.Fake (a, b, c, d, e)
instance (Fake.Class.Fake a, Fake.Class.Fake b, Fake.Class.Fake c, Fake.Class.Fake d, Fake.Class.Fake e, Fake.Class.Fake f) => Fake.Class.Fake (a, b, c, d, e, f)
instance (Fake.Class.Fake a, Fake.Class.Fake b, Fake.Class.Fake c, Fake.Class.Fake d, Fake.Class.Fake e, Fake.Class.Fake f, Fake.Class.Fake g) => Fake.Class.Fake (a, b, c, d, e, f, g)
module Fake.Utils
numerify :: Char -> FGen Char
lexify :: [Char] -> Char -> FGen Char
bothify :: [Char] -> Char -> FGen Char
newtype NumberScheme
NumberScheme :: Text -> NumberScheme
[unNumberScheme] :: NumberScheme -> Text
fakeNumberScheme :: NumberScheme -> FGen Text
newtype AlphaScheme
AlphaScheme :: Text -> AlphaScheme
[unAlphaScheme] :: AlphaScheme -> Text
fakeAlphaScheme :: AlphaScheme -> FGen Text
newtype AlphaNumScheme
AlphaNumScheme :: Text -> AlphaNumScheme
[unAlphaNumScheme] :: AlphaNumScheme -> Text
fakeAlphaNumScheme :: AlphaNumScheme -> FGen Text
instance Data.String.IsString Fake.Utils.AlphaNumScheme
instance GHC.Show.Show Fake.Utils.AlphaNumScheme
instance GHC.Read.Read Fake.Utils.AlphaNumScheme
instance GHC.Classes.Ord Fake.Utils.AlphaNumScheme
instance GHC.Classes.Eq Fake.Utils.AlphaNumScheme
instance Data.String.IsString Fake.Utils.AlphaScheme
instance GHC.Show.Show Fake.Utils.AlphaScheme
instance GHC.Read.Read Fake.Utils.AlphaScheme
instance GHC.Classes.Ord Fake.Utils.AlphaScheme
instance GHC.Classes.Eq Fake.Utils.AlphaScheme
instance Data.String.IsString Fake.Utils.NumberScheme
instance GHC.Show.Show Fake.Utils.NumberScheme
instance GHC.Read.Read Fake.Utils.NumberScheme
instance GHC.Classes.Ord Fake.Utils.NumberScheme
instance GHC.Classes.Eq Fake.Utils.NumberScheme
module Fake.Provider.PhoneNumber.EN_US
-- | Generates US style phone numbers.
phoneNumber :: FGen Text
areaCode :: FGen Text
exchangeCode :: FGen Text
module Fake
newtype FGen a
MkFGen :: (StdGen -> a) -> FGen a
[unFGen] :: FGen a -> StdGen -> a
-- | Run a generator to generate a random value in the IO monad.
generate :: FGen a -> IO a
module Fake.Provider.IdNumber.EN_US
-- | Generates a fake US social security number. The have the form
-- area-group-serial.
ssn :: FGen String
-- | Generate fake US addresses.
module Fake.Provider.Address.EN_US
-- | Generates a fake address.
fakeAddress :: FGen Text
-- | Generates a fake street component consisting of building number,
-- street name, and optional secondary suite or apartment number.
fakeStreet :: FGen Text
-- | Generates fake street names.
fakeStreetName :: FGen Text
-- | Generates fake US state.
fakeState :: FGen UsState
-- | Generates a fake city in a US state. These are generated from a list
-- of actual US cities in each state.
fakeCityInState :: UsState -> FGen Text
-- | Generates a fake zip code in a US state. Generated zip codes should
-- actually be valid for the given state.
fakeZipInState :: UsState -> FGen Text
-- | Generates a fake street suffix, e.g. road, street, avenue, etc.
fakeStreetSuffix :: FGen Text
-- | Enumeration of the fifty US states.
data UsState
Alabama :: UsState
Alaska :: UsState
Arizona :: UsState
Arkansas :: UsState
California :: UsState
Colorado :: UsState
Connecticut :: UsState
Delaware :: UsState
Florida :: UsState
Georgia :: UsState
Hawaii :: UsState
Idaho :: UsState
Illinois :: UsState
Indiana :: UsState
Iowa :: UsState
Kansas :: UsState
Kentucky :: UsState
Louisiana :: UsState
Maine :: UsState
Maryland :: UsState
Massachusetts :: UsState
Michigan :: UsState
Minnesota :: UsState
Mississippi :: UsState
Missouri :: UsState
Montana :: UsState
Nebraska :: UsState
Nevada :: UsState
NewHampshire :: UsState
NewJersey :: UsState
NewMexico :: UsState
NewYork :: UsState
NorthCarolina :: UsState
NorthDakota :: UsState
Ohio :: UsState
Oklahoma :: UsState
Oregon :: UsState
Pennsylvania :: UsState
RhodeIsland :: UsState
SouthCarolina :: UsState
SouthDakota :: UsState
Tennessee :: UsState
Texas :: UsState
Utah :: UsState
Vermont :: UsState
Virginia :: UsState
Washington :: UsState
WestVirginia :: UsState
Wisconsin :: UsState
Wyoming :: UsState
-- | Returns the two-character abbreviation for the given US state.
stateAbbreviation :: UsState -> Text
-- | Returns the two-character abbreviation for the given US state.
stateZipFormat :: UsState -> NumberScheme
-- | Map of actual cities in each US state.
usCities :: Map UsState [Text]
instance GHC.Generics.Generic Fake.Provider.Address.EN_US.UsState
instance GHC.Enum.Bounded Fake.Provider.Address.EN_US.UsState
instance GHC.Enum.Enum Fake.Provider.Address.EN_US.UsState
instance GHC.Show.Show Fake.Provider.Address.EN_US.UsState
instance GHC.Read.Read Fake.Provider.Address.EN_US.UsState
instance GHC.Classes.Ord Fake.Provider.Address.EN_US.UsState
instance GHC.Classes.Eq Fake.Provider.Address.EN_US.UsState