@@ -4,19 +4,21 @@ import Prelude
44
55import Control.Monad.Eff.Console (log )
66
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 )
88import Data.Argonaut.Parser (jsonParser )
9- import Data.Argonaut.Printer ( printJson )
9+ import Data.Argonaut.Gen ( genJson )
1010import Data.Array as A
11- import Data.Either (isLeft , isRight , Either (..))
12- import Data.Foldable (for_ )
11+ import Data.Either (isLeft , Either (..))
1312import Data.Maybe (Maybe (..), fromJust )
1413import Data.StrMap as M
1514import Data.Tuple (Tuple (..))
1615
16+ import Control.Monad.Gen as Gen
17+
1718import Partial.Unsafe (unsafePartial )
1819
19- import Test.StrongCheck (SC , assert , (<?>), quickCheck , Result ())
20+ import Test.StrongCheck (SC , (===), (<?>), assert , quickCheck , quickCheck' , Result )
21+ import Test.StrongCheck.Gen (Gen )
2022
2123foreign import thisIsNull :: Json
2224foreign import thisIsBoolean :: Json
@@ -122,15 +124,13 @@ toTest = do
122124
123125parserTest :: SC () Unit
124126parserTest = do
125- assert ((isRight (jsonParser " {\" foo\" : 1}" )) <?> " Error in jsonParser" )
126127 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
131129 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
134134
135135main :: SC () Unit
136136main = do
@@ -146,5 +146,3 @@ main = do
146146 toTest
147147 log " jsonParser tests"
148148 parserTest
149- log " printJson tests"
150- printJsonTest
0 commit comments