packages feed

jsonifier-0.1: test/Main/Util/HedgehogGens.hs

module Main.Util.HedgehogGens where

import Prelude
import Hedgehog
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
import qualified Numeric.Limits as NumericLimits


scientific :: Gen Scientific
scientific =
  Gen.realFrac_ (Range.linearFrac (-99999999999999) 99999999999999)
    <&> fromRational

realFloat =
  Gen.frequency [
    (99, realRealFloat)
    ,
    (1, nonRealRealFloat)
    ]

realRealFloat =
  Gen.realFloat (Range.exponentialFloat NumericLimits.minValue NumericLimits.maxValue)

nonRealRealFloat =
  Gen.element [0 / 0, 1 / 0, (-1) / 0, -0]