{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}
module Byron.Spec.Ledger.Delegation.Test (coverDelegFailures) where
import qualified Control.State.Transition.Generator as Generator
import Data.Data (Data)
import GHC.Stack (HasCallStack)
import Hedgehog (MonadTest)
import Hedgehog.Internal.Property (CoverPercentage)
import Byron.Spec.Ledger.Delegation
coverDelegFailures
:: forall m a
. ( MonadTest m
, HasCallStack
, Data a
)
=> CoverPercentage
-> a
-> m ()
coverDelegFailures :: CoverPercentage -> a -> m ()
coverDelegFailures CoverPercentage
coverPercentage =
CoverPercentage -> [PredicateFailure SDELEG] -> a -> m ()
forall (m :: * -> *) s a.
(MonadTest m, HasCallStack, Data (PredicateFailure s), Data a) =>
CoverPercentage -> [PredicateFailure s] -> a -> m ()
Generator.coverFailures
CoverPercentage
coverPercentage
[ EpochDiff -> SdelegPredicateFailure
EpochInThePast (Epoch -> Epoch -> EpochDiff
EpochDiff Epoch
0 Epoch
0)
, EpochDiff -> SdelegPredicateFailure
EpochPastNextEpoch (Epoch -> Epoch -> EpochDiff
EpochDiff Epoch
0 Epoch
0 )
, PredicateFailure SDELEG
SdelegPredicateFailure
IsAlreadyScheduled
, PredicateFailure SDELEG
SdelegPredicateFailure
IsNotGenesisKey
, PredicateFailure SDELEG
SdelegPredicateFailure
HasAlreadyDelegated
, PredicateFailure SDELEG
SdelegPredicateFailure
DoesNotVerify
]