cleveland-0.1.2: src/Hedgehog/Range/Defaults/Orphans.hs
-- SPDX-FileCopyrightText: 2022 Oxhead Alpha
-- SPDX-License-Identifier: LicenseRef-MIT-OA
{-# OPTIONS_GHC -Wno-orphans #-}
-- | One place for orphan instances
module Hedgehog.Range.Defaults.Orphans
() where
import Data.Default (Default(..))
import Hedgehog.Range (Range)
import Hedgehog.Range qualified as Range
import Morley.Michelson.ErrorPos (Pos(..))
import Morley.Michelson.Typed (T(..), Value'(..))
import Morley.Michelson.Untyped (StackRef(..))
import Morley.Tezos.Core (Mutez(..), Timestamp, timestampFromSeconds, timestampToSeconds)
import Hedgehog.Range.Tezos.Core.Timestamp
import Test.Cleveland.Instances ()
instance Default (Range Pos) where
def = Pos <$> Range.linearBounded
instance Default (Range StackRef) where
def = StackRef <$> Range.linear 0 (fromIntegral $ maxBound @Word64)
instance Default (Range Mutez) where
def = Range.linearBounded
instance Default (Range Timestamp) where
def = timestampFromSeconds <$>
Range.linear (timestampToSeconds minTimestamp) (timestampToSeconds maxTimestamp)
instance Default (Range (Value' instr 'TInt)) where
def = VInt <$> Range.linearFrom 0 -1000 1000
instance Default (Range (Value' instr 'TNat)) where
def = VNat <$> Range.linearFrom 0 0 1000