{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} module Test.Cardano.Ledger.Shelley.Imp (spec) where import Cardano.Ledger.Core import Cardano.Ledger.Shelley.Rules ( ShelleyPoolPredFailure, ShelleyUtxoPredFailure, ShelleyUtxowPredFailure, ) import Test.Cardano.Ledger.Imp.Common import qualified Test.Cardano.Ledger.Shelley.Imp.EpochSpec as Epoch import qualified Test.Cardano.Ledger.Shelley.Imp.LedgerSpec as Ledger import qualified Test.Cardano.Ledger.Shelley.Imp.PoolSpec as Pool import qualified Test.Cardano.Ledger.Shelley.Imp.UtxoSpec as Utxo import qualified Test.Cardano.Ledger.Shelley.Imp.UtxowSpec as Utxow import Test.Cardano.Ledger.Shelley.ImpTest import qualified Test.Cardano.Ledger.Shelley.UnitTests.InstantStakeTest as Instant spec :: forall era. ( ShelleyEraImp era , InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era , InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era , InjectRuleFailure "LEDGER" ShelleyPoolPredFailure era ) => Spec spec :: forall era. (ShelleyEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" ShelleyPoolPredFailure era) => Spec spec = do String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "ShelleyImpSpec" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ forall era. ShelleyEraImp era => SpecWith (ImpInit (LedgerSpec era)) -> Spec withEachEraVersion @era (SpecWith (ImpInit (LedgerSpec era)) -> Spec) -> SpecWith (ImpInit (LedgerSpec era)) -> Spec forall a b. (a -> b) -> a -> b $ do SpecWith (ImpInit (LedgerSpec era)) forall era. ShelleyEraImp era => SpecWith (ImpInit (LedgerSpec era)) Epoch.spec SpecWith (ImpInit (LedgerSpec era)) forall era. ShelleyEraImp era => SpecWith (ImpInit (LedgerSpec era)) Ledger.spec SpecWith (ImpInit (LedgerSpec era)) forall era. (ShelleyEraImp era, InjectRuleFailure "LEDGER" ShelleyPoolPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Pool.spec SpecWith (ImpInit (LedgerSpec era)) forall era. (ShelleyEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Utxow.spec SpecWith (ImpInit (LedgerSpec era)) forall era. (ShelleyEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Utxo.spec String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "ShelleyPureTests" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall era. ShelleyEraImp era => Spec Instant.spec @era