module Data.BCP47.Internal.Arbitrary
  ( Arbitrary
  , arbitrary
  , alphaString
  , alphaNumString
  , alphaChar
  , numChar
  , elements
  , choose
  , oneof
  , suchThat
  , listOf
  , vectorOf
  ) where

import Test.QuickCheck
  ( Arbitrary
  , Gen
  , arbitrary
  , choose
  , elements
  , listOf
  , oneof
  , suchThat
  , vectorOf
  )

numChar :: Gen Char
numChar :: Gen Char
numChar = [Char] -> Gen Char
forall a. [a] -> Gen a
elements [Char]
numChars

alphaNumString :: Int -> Gen String
alphaNumString :: Int -> Gen [Char]
alphaNumString Int
n = Int -> Gen Char -> Gen [Char]
forall a. Int -> Gen a -> Gen [a]
vectorOf Int
n Gen Char
alphaNumChar

alphaString :: Int -> Gen String
alphaString :: Int -> Gen [Char]
alphaString Int
n = Int -> Gen Char -> Gen [Char]
forall a. Int -> Gen a -> Gen [a]
vectorOf Int
n Gen Char
alphaChar

alphaNumChar :: Gen Char
alphaNumChar :: Gen Char
alphaNumChar = [Char] -> Gen Char
forall a. [a] -> Gen a
elements [Char]
alphaNumChars

alphaChar :: Gen Char
alphaChar :: Gen Char
alphaChar = [Char] -> Gen Char
forall a. [a] -> Gen a
elements [Char]
alphaChars

alphaNumChars :: String
alphaNumChars :: [Char]
alphaNumChars = [Char]
alphaChars [Char] -> [Char] -> [Char]
forall a. [a] -> [a] -> [a]
++ [Char]
numChars

alphaChars :: String
alphaChars :: [Char]
alphaChars = [Char
'a' .. Char
'z'] [Char] -> [Char] -> [Char]
forall a. [a] -> [a] -> [a]
++ [Char
'A' .. Char
'Z']

numChars :: String
numChars :: [Char]
numChars = [Char
'0' .. Char
'9']