{-# 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.Conway.Imp.BbodySpec qualified as ConwayBBODY import Test.Cardano.Ledger.Conway.Imp.CertsSpec qualified as ConwayCERTS import Test.Cardano.Ledger.Conway.Imp.DelegSpec qualified as ConwayDELEG import Test.Cardano.Ledger.Conway.Imp.EnactSpec qualified as ConwayENACT import Test.Cardano.Ledger.Conway.Imp.EpochSpec qualified as ConwayEPOCH import Test.Cardano.Ledger.Conway.Imp.GovCertSpec qualified as ConwayGOVCERT import Test.Cardano.Ledger.Conway.Imp.GovSpec qualified as ConwayGOV import Test.Cardano.Ledger.Conway.Imp.LedgerSpec qualified as ConwayLEDGER import Test.Cardano.Ledger.Conway.Imp.RatifySpec qualified as ConwayRATIFY import Test.Cardano.Ledger.Conway.Imp.UtxoSpec qualified as ConwayUTXO import Test.Cardano.Ledger.Conway.Imp.UtxosSpec qualified as ConwayUTXOS import Test.Cardano.Ledger.Conway.Imp.UtxowSpec qualified as ConwayUTXOW import Test.Cardano.Ledger.Dijkstra.Imp.CertSpec qualified as CERT import Test.Cardano.Ledger.Dijkstra.Imp.EntitiesSpec qualified as ENTITIES 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 @12) (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 SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayBBODY.spec 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 "disabled" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayCERTS.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) ENTITIES.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayDELEG.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. (ConwayEraImp era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era) => SpecWith (ImpInit (LedgerSpec era)) ConwayENACT.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. (ConwayEraImp era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era) => SpecWith (ImpInit (LedgerSpec era)) ConwayEPOCH.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayGOV.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayGOVCERT.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayLEDGER.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) LEDGER.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. (HasCallStack, ConwayEraImp era) => SpecWith (ImpInit (LedgerSpec era)) ConwayRATIFY.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayUTXO.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) UTXO.spec SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayUTXOW.spec 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 "disabled" SpecWith (ImpInit (LedgerSpec DijkstraEra)) forall era. ConwayEraImp era => SpecWith (ImpInit (LedgerSpec era)) ConwayUTXOS.spec