{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Test.Cardano.Ledger.CanonicalState.Arbitrary () where
import Cardano.Ledger.CanonicalState.BasicTypes (
CanonicalCoin (..),
CanonicalExUnits (..),
mkCanonicalExUnits,
)
import Cardano.Ledger.CanonicalState.Conway ()
import qualified Cardano.Ledger.CanonicalState.Namespace.Blocks.V0 as Blocks.V0
import qualified Cardano.Ledger.CanonicalState.Namespace.EntitiesCommittee.V0 as EntitiesCommittee.V0
import qualified Cardano.Ledger.CanonicalState.Namespace.GovCommittee.V0 as GovCommittee.V0
import qualified Cardano.Ledger.CanonicalState.Namespace.GovPParams.V0 as GovPParams.V0 ()
import qualified Cardano.Ledger.CanonicalState.Namespace.UTxO.V0 as UtxoOut.V0
import Cardano.Ledger.Coin (CompactForm (CompactCoin))
import Cardano.Ledger.Core (Era, EraTxOut, TxOut)
import Generic.Random (genericArbitraryU)
import Test.Cardano.Ledger.Conway.Arbitrary ()
import Test.QuickCheck (Arbitrary (..), Positive (..))
instance Arbitrary Blocks.V0.BlockOut where
arbitrary :: Gen BlockOut
arbitrary = Natural -> BlockOut
Blocks.V0.BlockOut (Natural -> BlockOut)
-> (Positive Integer -> Natural) -> Positive Integer -> BlockOut
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> Natural
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer -> Natural)
-> (Positive Integer -> Integer) -> Positive Integer -> Natural
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Positive a -> a
getPositive @Integer (Positive Integer -> BlockOut)
-> Gen (Positive Integer) -> Gen BlockOut
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (Positive Integer)
forall a. Arbitrary a => Gen a
arbitrary
instance (EraTxOut era, Arbitrary (TxOut era), Era era) => Arbitrary (UtxoOut.V0.UtxoOut era) where
arbitrary :: Gen (UtxoOut era)
arbitrary = TxOut era -> UtxoOut era
forall era. EraTxOut era => TxOut era -> UtxoOut era
UtxoOut.V0.mkUtxo (TxOut era -> UtxoOut era) -> Gen (TxOut era) -> Gen (UtxoOut era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (TxOut era)
forall a. Arbitrary a => Gen a
arbitrary
instance Arbitrary CanonicalCoin where
arbitrary :: Gen CanonicalCoin
arbitrary = CompactForm Coin -> CanonicalCoin
CanonicalCoin (CompactForm Coin -> CanonicalCoin)
-> (Word64 -> CompactForm Coin) -> Word64 -> CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> CompactForm Coin
CompactCoin (Word64 -> CanonicalCoin) -> Gen Word64 -> Gen CanonicalCoin
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen Word64
forall a. Arbitrary a => Gen a
arbitrary
instance Arbitrary EntitiesCommittee.V0.EntitiesCommitteeOut where
arbitrary :: Gen EntitiesCommitteeOut
arbitrary = Gen EntitiesCommitteeOut
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance Arbitrary EntitiesCommittee.V0.CanonicalCommitteeState where
arbitrary :: Gen CanonicalCommitteeState
arbitrary = Gen CanonicalCommitteeState
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance Arbitrary EntitiesCommittee.V0.CanonicalCommitteeAuthorization where
arbitrary :: Gen CanonicalCommitteeAuthorization
arbitrary = (CommitteeAuthorization -> CanonicalCommitteeAuthorization)
-> Gen CommitteeAuthorization
-> Gen CanonicalCommitteeAuthorization
forall a b. (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap CommitteeAuthorization -> CanonicalCommitteeAuthorization
EntitiesCommittee.V0.mkCanonicalCommitteeAuthorization Gen CommitteeAuthorization
forall a. Arbitrary a => Gen a
arbitrary
instance Arbitrary GovCommittee.V0.GovCommitteeOut where
arbitrary :: Gen GovCommitteeOut
arbitrary = Gen GovCommitteeOut
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance Arbitrary GovCommittee.V0.CanonicalCommittee where
arbitrary :: Gen CanonicalCommittee
arbitrary = Gen CanonicalCommittee
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance Arbitrary CanonicalExUnits where
arbitrary :: Gen CanonicalExUnits
arbitrary = ExUnits -> CanonicalExUnits
mkCanonicalExUnits (ExUnits -> CanonicalExUnits)
-> Gen ExUnits -> Gen CanonicalExUnits
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen ExUnits
forall a. Arbitrary a => Gen a
arbitrary