{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Dijkstra.Imp where import qualified Cardano.Ledger.Conway.Rules as Conway import Cardano.Ledger.Dijkstra.Core import qualified Cardano.Ledger.Shelley.Rules as Shelley import Test.Cardano.Ledger.Common import qualified Test.Cardano.Ledger.Conway.Imp as ConwayImp import qualified Test.Cardano.Ledger.Dijkstra.Imp.CertSpec as CERT import qualified Test.Cardano.Ledger.Dijkstra.Imp.CertsSpec as CERTS import qualified Test.Cardano.Ledger.Dijkstra.Imp.LedgerSpec as LEDGER 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 :: ( DijkstraEraImp era , Shelley.Event (EraRule "EPOCH" era) ~ Conway.ConwayEpochEvent era , Shelley.Event (EraRule "NEWEPOCH" era) ~ Conway.ConwayNewEpochEvent era , Shelley.Event (EraRule "HARDFORK" era) ~ Conway.ConwayHardForkEvent era , Shelley.Event (EraRule "RUPD" era) ~ Shelley.RupdEvent ) => proxy era -> Spec spec :: forall era (proxy :: * -> *). (DijkstraEraImp era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era, Event (EraRule "RUPD" era) ~ RupdEvent) => proxy era -> Spec spec proxy era era = do proxy era -> Spec forall era (proxy :: * -> *). (ConwayEraImp era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era, Event (EraRule "RUPD" era) ~ RupdEvent) => proxy era -> Spec ConwayImp.spec proxy era era String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "DijkstraEra Onwards" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ proxy era -> SpecWith (ImpInit (LedgerSpec era)) -> Spec forall (proxy :: * -> *) era. ShelleyEraImp era => proxy era -> SpecWith (ImpInit (LedgerSpec era)) -> Spec withImpInitEachEraVersion proxy era 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. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) LEDGER.spec SpecWith (ImpInit (LedgerSpec era)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) CERT.spec SpecWith (ImpInit (LedgerSpec era)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) CERTS.spec SpecWith (ImpInit (LedgerSpec era)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) UTXOW.spec SpecWith (ImpInit (LedgerSpec era)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) UTXO.spec