Skip to content

Commit a158b1d

Browse files
committed
Cleanup, prepare for v5.0.1
1 parent 1946576 commit a158b1d

File tree

2 files changed

+20
-32
lines changed

2 files changed

+20
-32
lines changed

spago.dhall

+2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
, repository = "https://github.com/purescript-spec/purescript-spec-quickcheck"
44
, dependencies =
55
[ "aff"
6+
, "arrays"
67
, "effect"
78
, "foldable-traversable"
89
, "lists"
910
, "maybe"
1011
, "prelude"
1112
, "quickcheck"
1213
, "spec"
14+
, "tuples"
1315
]
1416
, packages = ./packages.dhall
1517
, sources = [ "src/**/*.purs", "test/**/*.purs" ]

src/Test/Spec/QuickCheck.purs

+18-32
Original file line numberDiff line numberDiff line change
@@ -6,50 +6,36 @@ module Test.Spec.QuickCheck (
66

77
import Prelude
88

9-
import Effect.Class (liftEffect)
10-
import Data.Foldable (intercalate)
11-
import Data.List (mapMaybe, length)
12-
import Data.Maybe (Maybe(..))
13-
import Data.Tuple (Tuple(..))
14-
import Effect.Aff (Aff, error, throwError)
15-
import Test.QuickCheck as QC
9+
import Data.Array (fold)
10+
import Data.Foldable (intercalate)
11+
import Data.List (mapMaybe, null)
12+
import Data.Maybe (Maybe(..))
13+
import Data.Tuple.Nested (type (/\), (/\))
14+
import Effect.Aff (Aff, error, throwError)
15+
import Effect.Class (liftEffect)
16+
import Test.QuickCheck as QC
1617

1718
-- | Runs a Testable with a random seed and 100 inputs.
18-
quickCheck :: forall p.
19-
(QC.Testable p) =>
20-
p ->
21-
Aff Unit
19+
quickCheck :: p. (QC.Testable p) => p -> Aff Unit
2220
quickCheck = quickCheck' 100
2321

2422
-- | Runs a Testable with a random seed and the given number of inputs.
25-
quickCheck' :: forall p.
26-
(QC.Testable p) =>
27-
Int ->
28-
p ->
29-
Aff Unit
23+
quickCheck' :: p. (QC.Testable p) => Int -> p -> Aff Unit
3024
quickCheck' n prop = do
3125
seed <- liftEffect QC.randomSeed
3226
quickCheckPure seed n prop
3327

34-
getErrorMessage :: Tuple QC.Seed QC.Result -> Maybe String
35-
getErrorMessage (Tuple seed result) =
36-
case result of
37-
QC.Success -> Nothing
38-
QC.Failed msg ->
39-
Just $
40-
"Test (seed " <> show (QC.unSeed seed) <> ") failed: \n" <> msg
28+
getErrorMessage :: QC.Seed /\ QC.Result -> Maybe String
29+
getErrorMessage (_ /\ QC.Success) =
30+
Nothing
31+
getErrorMessage (seed /\ QC.Failed msg) =
32+
Just $ fold ["Test (seed ", show (QC.unSeed seed), ") failed: \n", msg]
4133

4234
-- | Runs a Testable with a given seed and number of inputs.
43-
quickCheckPure :: forall p.
44-
(QC.Testable p) =>
45-
QC.Seed ->
46-
Int ->
47-
p ->
48-
Aff Unit
35+
quickCheckPure :: p. (QC.Testable p) => QC.Seed -> Int -> p -> Aff Unit
4936
quickCheckPure seed n prop = do
5037
let results = QC.quickCheckPure' seed n prop
5138
let msgs = mapMaybe getErrorMessage results
5239

53-
if length msgs > 0
54-
then throwError $ error $ intercalate "\n " msgs
55-
else pure unit
40+
unless (null msgs) $
41+
throwError $ error $ intercalate "\n " msgs

0 commit comments

Comments
 (0)