{-# LANGUAGE DataKinds #-} {-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE TypeApplications #-} module Test.Cardano.Ledger.Conformance.Imp.Dijkstra (spec) where import Cardano.Ledger.BaseTypes import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Tx (Tx (..)) import Test.Cardano.Ledger.Conformance.ExecSpecRule.Dijkstra () import Test.Cardano.Ledger.Conformance.Imp.Core import Test.Cardano.Ledger.Dijkstra.Imp.CertSpec qualified as CERT import Test.Cardano.Ledger.Dijkstra.Imp.CertsSpec qualified as CERTS import Test.Cardano.Ledger.Dijkstra.Imp.LedgerSpec qualified as LEDGER import Test.Cardano.Ledger.Dijkstra.Imp.UtxoSpec qualified as UTXO import Test.Cardano.Ledger.Dijkstra.Imp.UtxowSpec qualified as UTXOW import Test.Cardano.Ledger.Dijkstra.ImpTest import Test.Cardano.Ledger.Imp.Common hiding (Args) spec :: Spec spec :: Spec spec = do String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Imp" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall t. ImpSpec t => SpecWith (ImpInit t) -> Spec withImpInit @(LedgerSpec DijkstraEra) (SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> Spec) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> Spec forall a b. (a -> b) -> a -> b $ forall era. (ShelleyEraImp era, ShelleyEraImp era) => Version -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) modifyImpInitProtVer @DijkstraEra (forall (v :: Natural). (KnownNat v, MinVersion <= v, v <= MaxVersion) => Version natVersion @11) (SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra))) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a b. (a -> b) -> a -> b $ (forall t. Globals -> TRC (EraRule "LEDGER" DijkstraEra) -> Either (NonEmpty (PredicateFailure (EraRule "LEDGER" DijkstraEra))) (State (EraRule "LEDGER" DijkstraEra), [Event (EraRule "LEDGER" DijkstraEra)]) -> ImpM t ()) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. (forall t. Globals -> TRC (EraRule "LEDGER" era) -> Either (NonEmpty (PredicateFailure (EraRule "LEDGER" era))) (State (EraRule "LEDGER" era), [Event (EraRule "LEDGER" era)]) -> ImpM t ()) -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) modifyImpInitPostSubmitTxHook Globals -> TRC (EraRule "LEDGER" DijkstraEra) -> Either (NonEmpty (PredicateFailure (EraRule "LEDGER" DijkstraEra))) (State (EraRule "LEDGER" DijkstraEra), [Event (EraRule "LEDGER" DijkstraEra)]) -> ImpM t () forall t. Globals -> TRC (EraRule "LEDGER" DijkstraEra) -> Either (NonEmpty (PredicateFailure (EraRule "LEDGER" DijkstraEra))) (State (EraRule "LEDGER" DijkstraEra), [Event (EraRule "LEDGER" DijkstraEra)]) -> ImpM t () forall era t. (HasCallStack, ExecSpecTopLevelRule "LEDGER" era) => Globals -> TRC (EraRule "LEDGER" era) -> Either (NonEmpty (PredicateFailure (EraRule "LEDGER" era))) (State (EraRule "LEDGER" era), [Event (EraRule "LEDGER" era)]) -> ImpM t () submitTxConformanceHook (SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra))) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a b. (a -> b) -> a -> b $ do (forall t. Globals -> TRC (EraRule "NEWEPOCH" DijkstraEra) -> State (EraRule "NEWEPOCH" DijkstraEra) -> ImpM t ()) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. (forall t. Globals -> TRC (EraRule "NEWEPOCH" era) -> State (EraRule "NEWEPOCH" era) -> ImpM t ()) -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) modifyImpInitPostEpochBoundaryHook Globals -> TRC (EraRule "NEWEPOCH" DijkstraEra) -> State (EraRule "NEWEPOCH" DijkstraEra) -> ImpM t () forall t. Globals -> TRC (EraRule "NEWEPOCH" DijkstraEra) -> State (EraRule "NEWEPOCH" DijkstraEra) -> ImpM t () forall era t. (ExecSpecTopLevelRule "NEWEPOCH" era, ToExpr (Event (EraRule "NEWEPOCH" era))) => Globals -> TRC (EraRule "NEWEPOCH" era) -> State (EraRule "NEWEPOCH" era) -> ImpM t () epochBoundaryConformanceHook (SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra))) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a b. (a -> b) -> a -> b $ do String -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "LEDGER" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) LEDGER.spec String -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "CERT" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) CERT.spec String -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a xdescribe String "CERTS" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) CERTS.spec String -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a xdescribe String "UTXOW" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) UTXOW.spec String -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) -> SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a xdescribe String "UTXO" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) UTXO.spec