{-# 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 where
  arbitrary :: Gen QueryPoolStateResult
arbitrary = Map (KeyHash StakePool) StakePoolParams
-> Map (KeyHash StakePool) StakePoolParams
-> Map (KeyHash StakePool) EpochNo
-> Map (KeyHash StakePool) Coin
-> QueryPoolStateResult
QueryPoolStateResult (Map (KeyHash StakePool) StakePoolParams
 -> Map (KeyHash StakePool) StakePoolParams
 -> Map (KeyHash StakePool) EpochNo
 -> Map (KeyHash StakePool) Coin
 -> QueryPoolStateResult)
-> Gen (Map (KeyHash StakePool) StakePoolParams)
-> Gen
     (Map (KeyHash StakePool) StakePoolParams
      -> Map (KeyHash StakePool) EpochNo
      -> Map (KeyHash StakePool) Coin
      -> QueryPoolStateResult)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (Map (KeyHash StakePool) StakePoolParams)
forall a. Arbitrary a => Gen a
arbitrary Gen
  (Map (KeyHash StakePool) StakePoolParams
   -> Map (KeyHash StakePool) EpochNo
   -> Map (KeyHash StakePool) Coin
   -> QueryPoolStateResult)
-> Gen (Map (KeyHash StakePool) StakePoolParams)
-> Gen
     (Map (KeyHash StakePool) EpochNo
      -> Map (KeyHash StakePool) Coin -> QueryPoolStateResult)
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)
forall a. Arbitrary a => Gen a
arbitrary Gen
  (Map (KeyHash StakePool) EpochNo
   -> Map (KeyHash StakePool) Coin -> QueryPoolStateResult)
-> Gen (Map (KeyHash StakePool) EpochNo)
-> Gen (Map (KeyHash StakePool) Coin -> QueryPoolStateResult)
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)
-> Gen (Map (KeyHash StakePool) Coin) -> Gen QueryPoolStateResult
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