{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Test.Cardano.Ledger.Babbage.Imp (spec) where import Cardano.Ledger.Alonzo.Plutus.Context (ContextError) import Cardano.Ledger.Alonzo.Rules ( AlonzoUtxoPredFailure, AlonzoUtxosPredFailure, AlonzoUtxowPredFailure, ) import Cardano.Ledger.Babbage.Core import Cardano.Ledger.Babbage.Rules (BabbageUtxowPredFailure (..)) import Cardano.Ledger.Babbage.TxInfo (BabbageContextError) import Cardano.Ledger.BaseTypes (Inject) import Cardano.Ledger.Shelley.Rules (ShelleyUtxoPredFailure, ShelleyUtxowPredFailure) import qualified Test.Cardano.Ledger.Alonzo.Imp as AlonzoImp import Test.Cardano.Ledger.Alonzo.ImpTest (AlonzoEraImp, LedgerSpec) import qualified Test.Cardano.Ledger.Babbage.Imp.UtxowSpec as Utxow import Test.Cardano.Ledger.Imp.Common spec :: forall era. ( Arbitrary (TxAuxData era) , AlonzoEraImp era , BabbageEraTxBody era , InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era , InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era , InjectRuleFailure "LEDGER" BabbageUtxowPredFailure era , Inject (BabbageContextError era) (ContextError era) ) => Spec spec :: forall era. (Arbitrary (TxAuxData era), AlonzoEraImp era, BabbageEraTxBody era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" BabbageUtxowPredFailure era, Inject (BabbageContextError era) (ContextError era)) => Spec spec = do forall era. (Arbitrary (TxAuxData era), AlonzoEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era) => Spec AlonzoImp.spec @era forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "BabbageImpSpec" forall b c a. (b -> c) -> (a -> b) -> a -> c . forall t. ImpSpec t => SpecWith (ImpInit t) -> Spec withImpInit @(LedgerSpec era) forall a b. (a -> b) -> a -> b $ do forall era. (AlonzoEraImp era, InjectRuleFailure "LEDGER" BabbageUtxowPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era, Inject (BabbageContextError era) (ContextError era), BabbageEraTxBody era) => SpecWith (ImpInit (LedgerSpec era)) Utxow.spec