-- 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