{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Dijkstra.Imp where import Cardano.Ledger.Conway.Rules import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Core import Cardano.Ledger.Dijkstra.Rules (DijkstraUtxoPredFailure) import Cardano.Ledger.Shelley.Rules import Test.Cardano.Ledger.Common import qualified Test.Cardano.Ledger.Conway.Imp as ConwayImp import qualified Test.Cardano.Ledger.Dijkstra.Imp.UtxoSpec as Utxo import qualified Test.Cardano.Ledger.Dijkstra.Imp.UtxowSpec as Utxow import Test.Cardano.Ledger.Dijkstra.ImpTest spec :: forall era. ( DijkstraEraImp era , EraSpecificSpec era , Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era , Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era , Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era , InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era ) => Spec spec :: forall era. (DijkstraEraImp era, EraSpecificSpec era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era, InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era) => Spec spec = do forall era. (ConwayEraImp era, EraSpecificSpec era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era) => Spec ConwayImp.spec @era 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 $ forall era. (DijkstraEraImp era, InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) dijkstraEraGenericSpec @era dijkstraEraGenericSpec :: forall era. ( DijkstraEraImp era , InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era ) => SpecWith (ImpInit (LedgerSpec era)) dijkstraEraGenericSpec :: forall era. (DijkstraEraImp era, InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) dijkstraEraGenericSpec = do String -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "UTXOW" SpecWith (ImpInit (LedgerSpec era)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) Utxow.spec String -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "UTXO" SpecWith (ImpInit (LedgerSpec era)) forall era. (DijkstraEraImp era, InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Utxo.spec instance EraSpecificSpec DijkstraEra