{-# LANGUAGE ImportQualifiedPost #-}

module Main where

import System.IO (
  BufferMode (LineBuffering),
  hSetBuffering,
  hSetEncoding,
  stdout,
  utf8,
 )
import Test.Cardano.Data.Map.NonEmpty qualified as Map.NonEmpty
import Test.Cardano.Data.MapExtrasSpec (mapExtrasSpec)
import Test.Cardano.Data.OMap.StrictSpec qualified as OMap
import Test.Cardano.Data.OSet.StrictSpec qualified as OSet
import Test.Cardano.Data.Set.NonEmpty qualified as Set.NonEmpty
import Test.Cardano.Data.SimpleOMap.StrictSpec qualified as SimpleOMap
import Test.Hspec
import Test.Hspec.Runner

conf :: Config
conf :: Config
conf =
  Config
defaultConfig
    { configTimes = True
    , configColorMode = ColorAlways
    }

spec :: Spec
spec :: Spec
spec =
  String -> Spec -> Spec
forall a. HasCallStack => String -> SpecWith a -> SpecWith a
describe String
"cardano-data" (Spec -> Spec) -> Spec -> Spec
forall a b. (a -> b) -> a -> b
$ do
    Spec
mapExtrasSpec
    Spec
Set.NonEmpty.spec
    Spec
OSet.spec
    Spec
Map.NonEmpty.spec
    Spec
OMap.spec
    Spec
SimpleOMap.spec

main :: IO ()
IO ()
main = do
  Handle -> BufferMode -> IO ()
hSetBuffering Handle
stdout BufferMode
LineBuffering
  Handle -> TextEncoding -> IO ()
hSetEncoding Handle
stdout TextEncoding
utf8
  Config -> Spec -> IO ()
hspecWith Config
conf Spec
spec