packages feed

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