module Main (main) where

import Test.Cardano.Ledger.Common (describe, ledgerTestMain)
import qualified Test.Cardano.Ledger.Conformance.Imp.Conway as ImpConway
import qualified Test.Cardano.Ledger.Conformance.Imp.Dijkstra as ImpDijkstra
import qualified Test.Cardano.Ledger.Conformance.Spec.Base as SpecBase
import qualified Test.Cardano.Ledger.Conformance.Spec.Conway as SpecConway

main :: IO ()
IO ()
main =
  Spec -> IO ()
ledgerTestMain (Spec -> IO ()) -> Spec -> IO ()
forall a b. (a -> b) -> a -> b
$ do
    String -> Spec -> Spec
forall a. HasCallStack => String -> SpecWith a -> SpecWith a
describe String
"Conformance" (Spec -> Spec) -> Spec -> Spec
forall a b. (a -> b) -> a -> b
$ do
      String -> Spec -> Spec
forall a. HasCallStack => String -> SpecWith a -> SpecWith a
describe String
"Conway" (Spec -> Spec) -> Spec -> Spec
forall a b. (a -> b) -> a -> b
$ do
        String -> Spec -> Spec
forall a. HasCallStack => String -> SpecWith a -> SpecWith a
describe String
"Base" Spec
SpecBase.spec
        Spec
SpecConway.spec
        Spec
ImpConway.spec
      String -> Spec -> Spec
forall a. HasCallStack => String -> SpecWith a -> SpecWith a
describe String
"Dijkstra" (Spec -> Spec) -> Spec -> Spec
forall a b. (a -> b) -> a -> b
$ do
        ImpDijkstra.spec