avro-0.6.2.1: test/Avro/Gen/Schema.hs
module Avro.Gen.Schema
where
import Data.Avro.Schema.Schema
import Hedgehog
import qualified Hedgehog.Gen as Gen
import Hedgehog.Range (Range)
import qualified Hedgehog.Range as Range
null :: MonadGen m => m Schema
null = pure Null
boolean :: MonadGen m => m Schema
boolean = pure Boolean
decimalGen :: MonadGen m => m Decimal
decimalGen = Decimal
<$> Gen.integral (Range.linear 0 10)
<*> Gen.integral (Range.linear 0 10)
int :: MonadGen m => m Schema
int = do
dec <- decimalGen
Int <$> Gen.maybe (Gen.element [DecimalI dec, Date, TimeMillis])
long :: MonadGen m => m Schema
long = do
dec <- decimalGen
Long <$> Gen.maybe (Gen.element
[DecimalL dec, TimeMicros, TimestampMillis,
TimestampMicros, LocalTimestampMillis, LocalTimestampMicros])