@@ -4,19 +4,21 @@ import Prelude
4
4
5
5
import Control.Monad.Eff.Console (log )
6
6
7
- import Data.Argonaut.Core (Json , JNull , toObject , toArray , toString , toNumber , toBoolean , toNull , fromObject , foldJsonObject , fromNumber , fromArray , foldJsonArray , fromString , foldJsonString , foldJsonNumber , fromBoolean , foldJsonBoolean , fromNull , foldJsonNull , foldJson , isObject , isArray , isString , isNumber , isBoolean , isNull )
7
+ import Data.Argonaut.Core (Json , JNull , toObject , toArray , toString , toNumber , toBoolean , toNull , fromObject , foldJsonObject , fromNumber , fromArray , foldJsonArray , fromString , foldJsonString , foldJsonNumber , fromBoolean , foldJsonBoolean , fromNull , foldJsonNull , foldJson , isObject , isArray , isString , isNumber , isBoolean , isNull , stringify )
8
8
import Data.Argonaut.Parser (jsonParser )
9
- import Data.Argonaut.Printer ( printJson )
9
+ import Data.Argonaut.Gen ( genJson )
10
10
import Data.Array as A
11
- import Data.Either (isLeft , isRight , Either (..))
12
- import Data.Foldable (for_ )
11
+ import Data.Either (isLeft , Either (..))
13
12
import Data.Maybe (Maybe (..), fromJust )
14
13
import Data.StrMap as M
15
14
import Data.Tuple (Tuple (..))
16
15
16
+ import Control.Monad.Gen as Gen
17
+
17
18
import Partial.Unsafe (unsafePartial )
18
19
19
- import Test.StrongCheck (SC , assert , (<?>), quickCheck , Result ())
20
+ import Test.StrongCheck (SC , (===), (<?>), assert , quickCheck , quickCheck' , Result )
21
+ import Test.StrongCheck.Gen (Gen )
20
22
21
23
foreign import thisIsNull :: Json
22
24
foreign import thisIsBoolean :: Json
@@ -122,15 +124,13 @@ toTest = do
122
124
123
125
parserTest :: SC () Unit
124
126
parserTest = do
125
- assert ((isRight (jsonParser " {\" foo\" : 1}" )) <?> " Error in jsonParser" )
126
127
assert ((isLeft (jsonParser " \\\f fff" )) <?> " Error in jsonParser" )
127
-
128
- printJsonTest :: SC () Unit
129
- printJsonTest = do
130
- for_ cases (assert <<< assertion)
128
+ quickCheck' 10 roundtripTest
131
129
where
132
- assertion :: Json -> Result
133
- assertion j = ((jsonParser (printJson j)) == Right j) <?> " Error in printJson"
130
+ roundtripTest :: Gen Result
131
+ roundtripTest = do
132
+ json <- Gen .resize (const 5 ) genJson
133
+ pure $ jsonParser (stringify json) === Right json
134
134
135
135
main :: SC () Unit
136
136
main = do
@@ -146,5 +146,3 @@ main = do
146
146
toTest
147
147
log " jsonParser tests"
148
148
parserTest
149
- log " printJson tests"
150
- printJsonTest
0 commit comments