{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}
module Byron.Spec.Ledger.Update.Test
( coverUpiregFailures
, coverUpivoteFailures
)
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.Update
coverUpiregFailures
:: forall m a
. ( MonadTest m
, HasCallStack
, Data a
)
=> CoverPercentage
-> a
-> m ()
coverUpiregFailures :: CoverPercentage -> a -> m ()
coverUpiregFailures CoverPercentage
coverPercentage a
someData = do
CoverPercentage -> [PredicateFailure UPPVV] -> a -> m ()
forall (m :: * -> *) s a.
(MonadTest m, HasCallStack, Data (PredicateFailure s), Data a) =>
CoverPercentage -> [PredicateFailure s] -> a -> m ()
Generator.coverFailures
CoverPercentage
coverPercentage
[ PredicateFailure UPPVV
UppvvPredicateFailure
CannotFollowPv
, [UpdateConstraintViolation] -> UppvvPredicateFailure
CannotUpdatePv []
, PredicateFailure UPPVV
UppvvPredicateFailure
AlreadyProposedPv
]
a
someData
CoverPercentage -> [PredicateFailure UPSVV] -> a -> m ()
forall (m :: * -> *) s a.
(MonadTest m, HasCallStack, Data (PredicateFailure s), Data a) =>
CoverPercentage -> [PredicateFailure s] -> a -> m ()
Generator.coverFailures
CoverPercentage
coverPercentage
[ PredicateFailure UPSVV
UpsvvPredicateFailure
AlreadyProposedSv
, PredicateFailure UPSVV
UpsvvPredicateFailure
CannotFollowSv
, PredicateFailure UPSVV
UpsvvPredicateFailure
InvalidApplicationName
, PredicateFailure UPSVV
UpsvvPredicateFailure
InvalidSystemTags
]
a
someData
CoverPercentage -> [PredicateFailure UPREG] -> a -> m ()
forall (m :: * -> *) s a.
(MonadTest m, HasCallStack, Data (PredicateFailure s), Data a) =>
CoverPercentage -> [PredicateFailure s] -> a -> m ()
Generator.coverFailures
CoverPercentage
coverPercentage
[ PredicateFailure UPREG
UpregPredicateFailure
NotGenesisDelegate
, PredicateFailure UPREG
UpregPredicateFailure
DoesNotVerify
]
a
someData
coverUpivoteFailures
:: forall m a
. ( MonadTest m
, HasCallStack
, Data a
)
=> CoverPercentage
-> a
-> m ()
coverUpivoteFailures :: CoverPercentage -> a -> m ()
coverUpivoteFailures CoverPercentage
coverPercentage =
CoverPercentage -> [PredicateFailure ADDVOTE] -> a -> m ()
forall (m :: * -> *) s a.
(MonadTest m, HasCallStack, Data (PredicateFailure s), Data a) =>
CoverPercentage -> [PredicateFailure s] -> a -> m ()
Generator.coverFailures
CoverPercentage
coverPercentage
[ PredicateFailure ADDVOTE
AddvotePredicateFailure
AVSigDoesNotVerify
, UpId -> AddvotePredicateFailure
NoUpdateProposal (Int -> UpId
UpId Int
0)
]