File tree Expand file tree Collapse file tree 5 files changed +16
-3
lines changed
Expand file tree Collapse file tree 5 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -100,6 +100,8 @@ instance showResult :: Show Result
100100(<?>) :: Boolean -> String -> Result
101101```
102102
103+ _ left-associative / precedence -1_
104+
103105This operator attaches an error message to a failed test.
104106
105107For example:
@@ -114,6 +116,8 @@ test x = myProperty x <?> ("myProperty did not hold for " <> show x)
114116(===) :: forall a b. (Eq a, Show a) => a -> a -> Result
115117```
116118
119+ _ left-associative / precedence -1_
120+
117121Self-documenting equality assertion
118122
119123#### ` (/==) `
@@ -122,6 +126,8 @@ Self-documenting equality assertion
122126(/==) :: forall a b. (Eq a, Show a) => a -> a -> Result
123127```
124128
129+ _ left-associative / precedence -1_
130+
125131Self-documenting inequality assertion
126132
127133
Original file line number Diff line number Diff line change @@ -29,4 +29,6 @@ instance numApproxNumber :: Num ApproxNumber
2929(=~=) :: Number -> Number -> Boolean
3030```
3131
32+ _ left-associative / precedence -1_
33+
3234
Original file line number Diff line number Diff line change @@ -44,4 +44,6 @@ Step the linear congruential generator
4444randomSeed :: forall e. Eff (random :: RANDOM | e) Seed
4545```
4646
47+ Create a random seed
48+
4749
Original file line number Diff line number Diff line change @@ -46,14 +46,14 @@ quickCheck' n prop = do
4646 seed <- randomSeed
4747 let results = quickCheckPure seed n prop
4848 let successes = countSuccesses results
49- log $ show (toNumber successes) ++ " /" ++ show (toNumber n) ++ " test(s) passed."
49+ log $ show successes ++ " /" ++ show n ++ " test(s) passed."
5050 throwOnFirstFailure one results
5151
5252 where
5353
5454 throwOnFirstFailure :: Int -> List Result -> QC Unit
5555 throwOnFirstFailure _ Nil = return unit
56- throwOnFirstFailure n (Cons (Failed msg) _) = throwException $ error $ " Test " ++ show (toNumber n) ++ " failed: \n " ++ msg
56+ throwOnFirstFailure n (Cons (Failed msg) _) = throwException $ error $ " Test " ++ show n ++ " failed: \n " ++ msg
5757 throwOnFirstFailure n (Cons _ rest) = throwOnFirstFailure (n + one) rest
5858
5959 countSuccesses :: List Result -> Int
Original file line number Diff line number Diff line change @@ -9,10 +9,12 @@ module Test.QuickCheck.LCG
99
1010import Prelude
1111
12+ import Math ((%))
1213import Control.Monad.Eff (Eff ())
1314import Control.Monad.Eff.Random (RANDOM (), randomInt )
1415import Data.Int (fromNumber , toNumber )
1516import Data.Int.Bits (shl )
17+ import qualified Data.Maybe.Unsafe as U
1618
1719type Seed = Int
1820
@@ -30,7 +32,8 @@ lcgN = one `shl` 30
3032
3133-- | Step the linear congruential generator
3234lcgNext :: Int -> Int
33- lcgNext n = ( lcgM * n + lcgC) `mod` lcgN
35+ lcgNext n = U .fromJust $ fromNumber $ (toNumber lcgM * toNumber n + toNumber lcgC) % toNumber lcgN
3436
37+ -- | Create a random seed
3538randomSeed :: forall e . Eff (random :: RANDOM | e ) Seed
3639randomSeed = randomInt 0 lcgM
You can’t perform that action at this time.
0 commit comments