{-# OPTIONS_GHC -Wno-orphans #-}

module Test.Cardano.Ledger.Api.Arbitrary () where

import Cardano.Ledger.Api.State.Query
import Generic.Random (genericArbitraryU)
import Test.Cardano.Ledger.Common
import Test.Cardano.Ledger.Dijkstra.Arbitrary ()

instance Arbitrary MemberStatus where
  arbitrary :: Gen MemberStatus
arbitrary = Gen MemberStatus
forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum

instance Arbitrary (QueryPoolStateResult era) where
  arbitrary :: Gen (QueryPoolStateResult era)
arbitrary = Map (KeyHash StakePool) (StakePoolParams era)
-> Map (KeyHash StakePool) (StakePoolParams era)
-> Map (KeyHash StakePool) EpochNo
-> Map (KeyHash StakePool) Coin
-> QueryPoolStateResult era
forall era.
Map (KeyHash StakePool) (StakePoolParams era)
-> Map (KeyHash StakePool) (StakePoolParams era)
-> Map (KeyHash StakePool) EpochNo
-> Map (KeyHash StakePool) Coin
-> QueryPoolStateResult era
QueryPoolStateResult (Map (KeyHash StakePool) (StakePoolParams era)
 -> Map (KeyHash StakePool) (StakePoolParams era)
 -> Map (KeyHash StakePool) EpochNo
 -> Map (KeyHash StakePool) Coin
 -> QueryPoolStateResult era)
-> Gen (Map (KeyHash StakePool) (StakePoolParams era))
-> Gen
     (Map (KeyHash StakePool) (StakePoolParams era)
      -> Map (KeyHash StakePool) EpochNo
      -> Map (KeyHash StakePool) Coin
      -> QueryPoolStateResult era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (Map (KeyHash StakePool) (StakePoolParams era))
forall a. Arbitrary a => Gen a
arbitrary Gen
  (Map (KeyHash StakePool) (StakePoolParams era)
   -> Map (KeyHash StakePool) EpochNo
   -> Map (KeyHash StakePool) Coin
   -> QueryPoolStateResult era)
-> Gen (Map (KeyHash StakePool) (StakePoolParams era))
-> Gen
     (Map (KeyHash StakePool) EpochNo
      -> Map (KeyHash StakePool) Coin -> QueryPoolStateResult era)
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Map (KeyHash StakePool) (StakePoolParams era))
forall a. Arbitrary a => Gen a
arbitrary Gen
  (Map (KeyHash StakePool) EpochNo
   -> Map (KeyHash StakePool) Coin -> QueryPoolStateResult era)
-> Gen (Map (KeyHash StakePool) EpochNo)
-> Gen (Map (KeyHash StakePool) Coin -> QueryPoolStateResult era)
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Map (KeyHash StakePool) EpochNo)
forall a. Arbitrary a => Gen a
arbitrary Gen (Map (KeyHash StakePool) Coin -> QueryPoolStateResult era)
-> Gen (Map (KeyHash StakePool) Coin)
-> Gen (QueryPoolStateResult era)
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Map (KeyHash StakePool) Coin)
forall a. Arbitrary a => Gen a
arbitrary

instance Arbitrary StakeSnapshot where
  arbitrary :: Gen StakeSnapshot
arbitrary = Gen StakeSnapshot
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
  shrink :: StakeSnapshot -> [StakeSnapshot]
shrink = StakeSnapshot -> [StakeSnapshot]
forall a.
(Generic a, RecursivelyShrink (Rep a), GSubterms (Rep a) a) =>
a -> [a]
genericShrink

instance Arbitrary StakeSnapshots where
  arbitrary :: Gen StakeSnapshots
arbitrary = Gen StakeSnapshots
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
  shrink :: StakeSnapshots -> [StakeSnapshots]
shrink = StakeSnapshots -> [StakeSnapshots]
forall a.
(Generic a, RecursivelyShrink (Rep a), GSubterms (Rep a) a) =>
a -> [a]
genericShrink