{-# LANGUAGE TypeApplications #-} module Main where import Cardano.Ledger.Allegra (AllegraEra) import qualified Test.Cardano.Ledger.Allegra.Binary.CddlSpec as CddlSpec import qualified Test.Cardano.Ledger.Allegra.BinarySpec as BinarySpec import qualified Test.Cardano.Ledger.Allegra.Imp as Imp import Test.Cardano.Ledger.Allegra.ImpTest () import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Core.JSON (roundTripJsonEraSpec) import Test.Cardano.Ledger.Shelley.JSON (roundTripJsonShelleyEraSpec) main :: IO () IO () main = Spec -> IO () ledgerTestMain (Spec -> IO ()) -> Spec -> IO () forall a b. (a -> b) -> a -> b $ String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Allegra" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do Spec BinarySpec.spec Spec CddlSpec.spec 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 era. (ShelleyEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era) => Spec Imp.spec @AllegraEra forall era. (HasCallStack, EraTest era) => Spec roundTripJsonEraSpec @AllegraEra forall era. ShelleyEraTest era => Spec roundTripJsonShelleyEraSpec @AllegraEra