hedgehog-1.7: test/Test/Hedgehog/Seed.hs
{-# LANGUAGE TemplateHaskell #-}
module Test.Hedgehog.Seed (
tests
) where
import Data.Foldable (for_)
import Hedgehog
import qualified Hedgehog.Internal.Seed as Seed
data Assert =
Assert {
expected :: !Seed
, actual :: !Seed
} deriving (Show)
-- | Verify that SplitMix avoids pathological γ-values, as discussed by
-- Melissa E. O'Neill in the post with title Bugs in SplitMix(es), at
-- http://www.pcg-random.org/posts/bugs-in-splitmix.html
--
-- See also:
-- https://github.com/hedgehogqa/haskell-hedgehog/issues/191
--
prop_avoid_pathological_gamma_values :: Property
prop_avoid_pathological_gamma_values =
withTests 1 . property $ do
for_ asserts $ \a ->
expected a === actual a
asserts :: [Assert]
asserts = [
Assert
(Seed 15210016002011668638 12297829382473034411)
(Seed.from 0x61c8864680b583eb)
, Assert
(Seed 11409286845259996466 12297829382473034411)
(Seed.from 0xf8364607e9c949bd)
, Assert
(Seed 1931727433621677744 12297829382473034411)
(Seed.from 0x88e48f4fcc823718)
, Assert
(Seed 307741759840609752 12297829382473034411)
(Seed.from 0x7f83ab8da2e71dd1)
, Assert
(Seed 8606169619657412120 12297829382473034413)
(Seed.from 0x7957d809e827ff4c)
, Assert
(Seed 13651108307767328632 12297829382473034413)
(Seed.from 0xf8d059aee4c53639)
, Assert
(Seed 125750466559701114 12297829382473034413)
(Seed.from 0x9cd9f015db4e58b7)
, Assert
(Seed 6781260234005250507 12297829382473034413)
(Seed.from 0xf4077b0dbebc73c0)
, Assert
(Seed 15306535823716590088 12297829382473034405)
(Seed.from 0x305cb877109d0686)
, Assert
(Seed 7344074043290227165 12297829382473034405)
(Seed.from 0x359e58eeafebd527)
, Assert
(Seed 9920554987610416076 12297829382473034405)
(Seed.from 0xbeb721c511b0da6d)
, Assert
(Seed 3341781972484278810 12297829382473034405)
(Seed.from 0x86466fd0fcc363a6)
, Assert
(Seed 12360157267739240775 12297829382473034421)
(Seed.from 0xefee3e7b93db3075)
, Assert
(Seed 600595566262245170 12297829382473034421)
(Seed.from 0x79629ee76aa83059)
, Assert
(Seed 1471112649570176389 12297829382473034421)
(Seed.from 0x05d507d05e785673)
, Assert
(Seed 8100917074368564322 12297829382473034421)
(Seed.from 0x76442b62dddf926c)
]
tests :: IO Bool
tests =
checkParallel $$(discover)