packages feed

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

module Main.Util.HedgehogGens where

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

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]