@@ -2,22 +2,24 @@ module Test.Main where
22
33import Prelude
44
5- import Effect (Effect )
6- import Effect.Console (log , logShow )
7- import Effect.Exception (try )
85import Control.Monad.Gen.Class as MGen
6+ import Data.Array (all )
97import Data.Array.Partial (head )
108import Data.Either (isLeft )
119import Data.Foldable (sum )
1210import Data.Generic.Rep (class Generic )
1311import Data.Generic.Rep.Show (genericShow )
1412import Data.Tuple (fst )
13+ import Effect (Effect )
14+ import Effect.Console (log , logShow )
15+ import Effect.Exception (try )
16+ import Global (isFinite )
1517import Partial.Unsafe (unsafePartial )
18+ import Random.LCG (mkSeed )
1619import Test.Assert (assert )
1720import Test.QuickCheck (class Testable , quickCheck , (/=?), (<=?), (<?), (==?), (>=?), (>?))
1821import Test.QuickCheck.Arbitrary (arbitrary , genericArbitrary , class Arbitrary )
19- import Test.QuickCheck.Gen (Gen , vectorOf , randomSample' , resize , Size , runGen , sized )
20- import Random.LCG (mkSeed )
22+ import Test.QuickCheck.Gen (Gen , Size , randomSample , randomSample' , resize , runGen , sized , vectorOf )
2123
2224data Foo a = F0 a | F1 a a | F2 { foo :: a , bar :: Array a }
2325derive instance genericFoo :: Generic (Foo a ) _
@@ -84,6 +86,9 @@ main = do
8486 quickCheck $ 4 >? 3
8587 quickCheckFail $ 4 <=? 3
8688
89+ log " Checking that chooseFloat over the whole Number range always yields a finite value"
90+ randomSample (MGen .chooseFloat ((-1.7976931348623157e+308 )) (1.7976931348623157e+308 )) >>= assert <<< all isFinite
91+
8792 where
8893 go n = map (sum <<< unsafeHead) $ randomSample' 1 (vectorOf n (arbitrary :: Gen Int ))
8994
0 commit comments