{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeApplications #-}

module Test.Util.ChainUpdates.Tests (tests) where

import           Cardano.Ledger.BaseTypes (knownNonZeroBounded)
import           Ouroboros.Consensus.Config
import           Test.Tasty
import           Test.Tasty.QuickCheck
import           Test.Util.ChainUpdates

tests :: TestTree
tests :: TestTree
tests = TestName -> [TestTree] -> TestTree
testGroup TestName
"Test.Util.ChainUpdates"
    [ TestName -> Property -> TestTree
forall a. Testable a => TestName -> a -> TestTree
testProperty TestName
"genChainUpdates" (Property -> TestTree) -> Property -> TestTree
forall a b. (a -> b) -> a -> b
$ SecurityParam -> Int -> Property
prop_genChainUpdates SecurityParam
k Int
updatesToGenerate
    ]
  where
    k :: SecurityParam
k = NonZero Word64 -> SecurityParam
SecurityParam (NonZero Word64 -> SecurityParam)
-> NonZero Word64 -> SecurityParam
forall a b. (a -> b) -> a -> b
$ forall (n :: Natural) a.
(KnownNat n, 1 <= n, WithinBounds n a, Num a) =>
NonZero a
knownNonZeroBounded @3
    updatesToGenerate :: Int
updatesToGenerate = Int
100