Skip to content

Commit 0049933

Browse files
committed
A few additional fixes
1 parent 1dcb132 commit 0049933

File tree

5 files changed

+11
-51
lines changed

5 files changed

+11
-51
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
language: node_js
22
dist: trusty
33
sudo: required
4-
node_js: 6
4+
node_js: stable
55
install:
66
- npm install -g bower
77
- npm install

bower.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
"license": "MIT",
1313
"dependencies": {
1414
"purescript-argonaut-codecs": "^3.0.0",
15-
"purescript-argonaut-core": "^3.0.0",
15+
"purescript-argonaut-core": "^3.1.0",
1616
"purescript-argonaut-traversals": "^3.0.0"
1717
},
1818
"devDependencies": {
1919
"purescript-console": "^3.0.0",
20-
"purescript-strongcheck": "^3.0.0"
20+
"purescript-strongcheck": "^3.1.0"
2121
}
2222
}

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"devDependencies": {
99
"pulp": "^11.0.0",
1010
"purescript-psa": "^0.5.0",
11-
"purescript": "^0.11.0",
12-
"rimraf": "^2.5.4"
11+
"purescript": "^0.11.1",
12+
"rimraf": "^2.6.1"
1313
}
1414
}

src/Data/Argonaut.purs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ module Data.Argonaut
88
, module Data.Argonaut.Traversals
99
) where
1010

11-
import Data.Argonaut.Core (JArray, JAssoc, JBoolean, JNull, JNumber, JObject, JString, Json, foldJson, foldJsonArray, foldJsonBoolean, foldJsonNull, foldJsonNumber, foldJsonObject, foldJsonString, fromArray, fromBoolean, fromNull, fromNumber, fromObject, fromString, isArray, isBoolean, isNull, isNumber, isObject, isString, jsonEmptyArray, jsonEmptyObject, jsonFalse, jsonNull, jsonSingletonArray, jsonSingletonObject, jsonTrue, jsonZero, toArray, toBoolean, toNull, toNumber, toObject, toString)
11+
import Data.Argonaut.Core (JArray, JAssoc, JBoolean, JNull, JNumber, JObject, JString, Json, foldJson, foldJsonArray, foldJsonBoolean, foldJsonNull, foldJsonNumber, foldJsonObject, foldJsonString, fromArray, fromBoolean, fromNull, fromNumber, fromObject, fromString, isArray, isBoolean, isNull, isNumber, isObject, isString, jNull, jsonEmptyArray, jsonEmptyObject, jsonFalse, jsonNull, jsonSingletonArray, jsonSingletonObject, jsonTrue, jsonZero, toArray, toBoolean, toNull, toNumber, toObject, toString)
1212
import Data.Argonaut.Decode (class DecodeJson, decodeJson, getField, (.?))
1313
import Data.Argonaut.Encode (class EncodeJson, assoc, encodeJson, extend, (:=), (~>))
14-
import Data.Argonaut.JCursor (JCursor(..), JsonPrim(..), cursorGet, cursorSet, downField, downIndex, exactNull, fail, fromPrims, inferEmpty, insideOut, primBool, primNull, primNum, primStr, primToJson, runJsonPrim, toPrims)
14+
import Data.Argonaut.JCursor (JCursor(..), JsonPrim(..), cursorGet, cursorSet, downField, downIndex, fail, fromPrims, inferEmpty, insideOut, primBool, primNull, primNum, primStr, primToJson, runJsonPrim, toPrims)
1515
import Data.Argonaut.Parser (jsonParser)
1616
import Data.Argonaut.Prisms (_Array, _Boolean, _Null, _Number, _Object, _String)
1717
import Data.Argonaut.Traversals (_JsonArray, _JsonBoolean, _JsonNull, _JsonNumber, _JsonObject, _JsonString)

test/Test/Main.purs

+4-44
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,21 @@ import Prelude
44

55
import Control.Monad.Eff.Console (log)
66

7-
import Data.Argonaut (Json, fromString, encodeJson, decodeJson, fromObject, fromArray, fromNumber, fromBoolean, jsonNull, (.?))
7+
import Data.Argonaut (Json, decodeJson, encodeJson, fromString, (.?))
88
import Data.Argonaut.JCursor (JCursor(..), toPrims, fromPrims)
9-
import Data.Array (zipWith, nubBy, length)
9+
import Data.Argonaut.Gen (genJson)
1010
import Data.Either (Either(..))
11-
import Data.List (fromFoldable)
1211
import Data.Maybe (Maybe(..))
1312
import Data.StrMap as M
14-
import Data.Tuple (Tuple(..), fst)
1513

1614
import Test.StrongCheck (SC, Result, assert, quickCheck', (<?>))
1715
import Test.StrongCheck.Arbitrary (class Arbitrary, arbitrary)
18-
import Test.StrongCheck.Data.AlphaNumString (AlphaNumString(..))
19-
import Test.StrongCheck.Gen (Gen, Size, showSample, chooseInt, sized, frequency, oneOf, vectorOf)
16+
import Test.StrongCheck.Gen (chooseInt, resize)
2017

2118
newtype TestJson = TestJson Json
2219

23-
genJNull :: Gen Json
24-
genJNull = pure jsonNull
25-
26-
genJBool :: Gen Json
27-
genJBool = fromBoolean <$> arbitrary
28-
29-
genJNumber :: Gen Json
30-
genJNumber = fromNumber <$> arbitrary
31-
32-
genJString :: Gen Json
33-
genJString = fromString <$> arbitrary
34-
35-
genJArray :: Size -> Gen Json
36-
genJArray sz = fromArray <$> vectorOf sz (genJson $ sz - 1)
37-
38-
genJObject :: Size -> Gen Json
39-
genJObject sz = do
40-
v <- vectorOf sz (genJson $ sz - 1)
41-
k <- vectorOf (length v) (arbitrary :: Gen AlphaNumString)
42-
let
43-
f (AlphaNumString s) = s <> "x"
44-
k' = f <$> k
45-
pure $ fromObject <<< M.fromFoldable <<< nubBy (\a b -> (fst a) == (fst b)) $ zipWith Tuple k' v
46-
47-
genJson :: Size -> Gen Json
48-
genJson 0 = oneOf genJNull [genJBool, genJNumber, genJString]
49-
genJson n = frequency (Tuple 1.0 genJNull) rest where
50-
rest = fromFoldable [Tuple 2.0 genJBool,
51-
Tuple 2.0 genJNumber,
52-
Tuple 3.0 genJString,
53-
Tuple 1.0 (genJArray n),
54-
Tuple 1.0 (genJObject n)]
55-
56-
5720
instance arbitraryJson :: Arbitrary TestJson where
58-
arbitrary = TestJson <$> sized genJson
21+
arbitrary = TestJson <$> (resize 5 genJson)
5922

6023
prop_encode_then_decode :: TestJson -> Boolean
6124
prop_encode_then_decode (TestJson json) =
@@ -89,9 +52,6 @@ prop_jcursor_serialization (TestJCursor c) =
8952

9053
main :: SC () Unit
9154
main = do
92-
log "Showing small sample of JSON"
93-
showSample (genJson 10)
94-
9555
log "Testing that any JSON can be encoded and then decoded"
9656
quickCheck' 20 prop_encode_then_decode
9757

0 commit comments

Comments
 (0)