{-# OPTIONS_GHC -Wno-orphans #-}

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

import Cardano.Ledger.Api.State.Query (MemberStatus, QueryPoolStateResult (..))
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) PoolParams
-> Map (KeyHash 'StakePool) PoolParams
-> Map (KeyHash 'StakePool) EpochNo
-> Map (KeyHash 'StakePool) Coin
-> QueryPoolStateResult
QueryPoolStateResult (Map (KeyHash 'StakePool) PoolParams
 -> Map (KeyHash 'StakePool) PoolParams
 -> Map (KeyHash 'StakePool) EpochNo
 -> Map (KeyHash 'StakePool) Coin
 -> QueryPoolStateResult)
-> Gen (Map (KeyHash 'StakePool) PoolParams)
-> Gen
     (Map (KeyHash 'StakePool) PoolParams
      -> 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) PoolParams)
forall a. Arbitrary a => Gen a
arbitrary Gen
  (Map (KeyHash 'StakePool) PoolParams
   -> Map (KeyHash 'StakePool) EpochNo
   -> Map (KeyHash 'StakePool) Coin
   -> QueryPoolStateResult)
-> Gen (Map (KeyHash 'StakePool) PoolParams)
-> 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) PoolParams)
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