exchangerates-0.0.0.0: test/ExchangeRates/Types/Gen.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
module ExchangeRates.Types.Gen where
import TestImport
import Numeric.Natural
import ExchangeRates.Types
-- Until genvalidity has these.
instance GenUnchecked Natural where
genUnchecked = fromInteger . abs <$> genValid -- Cannot even generate wrong ones
shrinkUnchecked _ = []
instance GenValid Natural where
genValid = fromInteger . abs <$> genValid
instance GenUnchecked Rate
instance GenValid Rate where
genValid = (Rate <$> genValid) `suchThat` isValid
instance GenUnchecked Currency
instance GenValid Currency
instance GenUnchecked Symbols
instance GenValid Symbols where
genValid = Symbols <$> genValid
instance GenUnchecked Rates
instance GenValid Rates where
genValid = (Rates <$> genValid <*> genValid <*> genValid) `suchThat` isValid