OK, let's see if this worked. Updated test suite.

Squashed commit of the following:

commit b255d27aeca09583415fca8616e68eeaa2fd3eeb
Author: Julian Berman <Julian@GrayVines.com>
Date:   Mon Dec 24 19:41:09 2012 -0500

    Add tests for ignoring irrelevant types.

commit 71a0d30e0cafce6876f23ab6cf25365d1244e0cd
Merge: 2262a91 082e844
Author: Julian Berman <Julian@GrayVines.com>
Date:   Sun Dec 23 21:14:38 2012 -0500

    Tag version 1.0.0.

    Closes #13

commit 082e8440ccbf29181b8ba6f440d89f4723b841df
Author: Julian Berman <Julian@GrayVines.com>
Date:   Sun Dec 23 00:28:48 2012 -0500

    Cleanup

    * Make errors in the tests be failures
    * Removed use of ErrorTree
    * Added another helper fn
    * Use fnmatch instead of glob

commit e39d53703cbf4047b4fcd864dc55ad412c4c9d1d
Author: Julian Berman <Julian@GrayVines.com>
Date:   Fri Dec 21 14:52:16 2012 -0500

    Added tests differentiating between lexical and mathematical integers.

    Integer literals should be considered integers, while mathematical integers can
    be specified with divisibleBy.

    See: https://github.com/json-schema/json-schema/issues/27

    Closes #2

commit 44540b712d330625379ab3a85fa33aca044b29cd
Author: Julian Berman <Julian@GrayVines.com>
Date:   Fri Dec 21 14:47:26 2012 -0500

    Added name to license.

commit 646a9810aa69ca3a1fd14dc4282d4191cc222436
Author: Julian Berman <Julian@GrayVines.com>
Date:   Fri Dec 21 14:31:47 2012 -0500

    Add a test for BigNum integers.

    Closes #12

commit d22c24ea996491f839f5f5c8447ad30f2087eebb
Merge: e8bcd5a c0dbbb5
Author: Julian Berman <Julian@GrayVines.com>
Date:   Wed Dec 19 10:57:03 2012 -0800

    Merge pull request #17 from gazpachoking/validate_suite_content

    Add sanity checks for actual format of test suites

commit c0dbbb5320d33763b186ff40aa0292c6170588ef
Author: Chase Sterling <chase.sterling@gmail.com>
Date:   Wed Dec 19 10:53:57 2012 -0500

    Add back executable bit to suite_sanity_check

commit 86f348605b35b9777691a0498f720c9dba2fb500
Author: Chase Sterling <chase.sterling@gmail.com>
Date:   Wed Dec 19 00:49:20 2012 -0500

    Add sanity check to validate all suites against suite schema.
    Make sure optional test suites don't skip the sanity checks.

commit e8bcd5a1f064eadd4acf4be16bf92412f9fd0e54
Author: Nick Lombard <github@jigsoft.co.za>
Date:   Wed Dec 19 06:38:00 2012 +0200

    Update README.md

    Travis status for develop branch

commit ca8f1071db80ce5f256927d3cad8af8404c768b9
Author: Nick Lombard <github@jigsoft.co.za>
Date:   Wed Dec 19 06:36:03 2012 +0200

    Update README.md

    Added travis status image

commit cf4597e140d1f713f9f7f34c2cb03da869a3224e
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Dec 18 23:27:13 2012 -0500

    Minor formatting (and get travis to build)

commit 5cb630c9ee5c8eecb06332d65f784538e451bc31
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Dec 18 23:12:42 2012 -0500

    Show number of tests found

commit 7baea07ecbb64edf7bd4dab6f11139672298d3fd
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Dec 18 23:11:33 2012 -0500

    Travis

commit 2f320bb1c0e7514e7e03fe6049413c974fc844ec
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Dec 18 23:07:23 2012 -0500

    Add sanity checker.

commit 2262a9141c1f147c237adbeea540f66018349c5f
Merge: 9cda89e a1ec588
Author: Julian Berman <Julian@GrayVines.com>
Date:   Tue Dec 18 13:22:23 2012 -0800

    Merge pull request #15 from tdegrunt/patch-1

    Update README.md

commit a1ec58862c20ea4c98d5c6a26024e83145453b03
Author: Tom de Grunt <tom@degrunt.nl>
Date:   Tue Dec 18 22:10:48 2012 +0100

    Update README.md

    Added node.js module jsonschema.

commit 9cda89ee01a4cc9e86a215b3b9ff0468b59714a0
Author: Julian Berman <Julian@GrayVines.com>
Date:   Tue Dec 18 14:35:19 2012 -0500

    Update README.md

commit b22d795b9863d02e9fd4891ffde153ad41c4f1cb
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Nov 17 19:26:21 2012 -0500

    Ignore TODO

commit 330fd4864fa55b3b6bed8287cf3bdcbc2c639798
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Nov 17 19:25:27 2012 -0500

    Merge into properties tests.

commit c7c2338380efebf6b89c9b81552962736fcf0b84
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Nov 17 19:20:25 2012 -0500

    Remove duplicate tests.

commit 281c28be60f87fe231815b8faebc1e6169233be5
Merge: 6f55ff5 6c28d7c
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Nov 17 19:14:19 2012 -0500

    Merge git://github.com/IreneKnapp/JSON-Schema-Test-Suite

commit 6c28d7cb5fce73dd2cea792c151bb002501aa6ed
Author: Irene Knapp <irene.knapp@icloud.com>
Date:   Fri Nov 16 08:33:30 2012 -0500

    Fix a test that should actually be invalid.  Remove some unnecessary tests.

commit b7858cc3584ce8a8886a7edde3866f9776505b6f
Author: Irene Knapp <irene.knapp@icloud.com>
Date:   Thu Nov 15 22:48:09 2012 -0500

    Port over the rest of the stuff from jsonschema (the Python project).

commit fa666236d2d4386ff3f17589d3f5f9416f3280df
Author: Irene Knapp <irene.knapp@icloud.com>
Date:   Thu Nov 15 16:37:56 2012 -0500

    Port roughly the first third of jsonschema (the Python project)'s tests.py.

commit 6f55ff5138a561999df5b8ee27324856466eca6e
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Thu Nov 15 14:46:48 2012 -0500

    Add the haskell thing that was using us.

commit 756c8257ca5a9e4de08a27f716844d24ee99432f
Merge: d735a8a 459dd98
Author: Julian Berman <Julian@GrayVines.com>
Date:   Thu Nov 15 11:44:08 2012 -0800

    Merge pull request #6 from IreneKnapp/master

    Add direct-schema to list of clients

commit 459dd98563fbeb840ce8202a1ce72a24199a87c7
Author: Irene Knapp <irene.knapp@icloud.com>
Date:   Thu Nov 15 14:40:41 2012 -0500

    Adding direct-schema to list of clients.

commit d735a8a9de59e1ed7e0bf660b7aba0925c0f1cfa
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Thu Nov 15 09:37:03 2012 -0500

    Add call to action.

commit ca78ea844e6ca0d4d43885630d122687982d4746
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Thu Nov 1 08:58:50 2012 -0400

    Add heterogeneous types unique test.

commit 4ab01de94340e6baed2344f0b949043ca35ddfaa
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Wed Oct 31 20:12:53 2012 -0400

    Add specific test for bool and int.

commit 6a52026b0d5f1b687d5a995a1591b99d30240280
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Wed Oct 31 20:12:38 2012 -0400

    Simplify test to remove also testing integers and booleans.

commit 3871deac9d5cbc50635533736b68da2feaac0a1d
Merge: fefa4dc 6f18358
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Wed Oct 10 17:39:19 2012 -0400

    Merge branch 'render'

commit 6f18358cc498bb0ed5dfcef08bca52408bf717e9
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Wed Oct 10 17:37:54 2012 -0400

    Fix README example.

commit fefa4dc1c72f75c605aeb8138c39468e8240e724
Merge: 189e231 295d43a
Author: Julian Berman <Julian@GrayVines.com>
Date:   Wed Oct 10 12:47:28 2012 -0700

    Merge pull request #5 from timjb/master

    Added tests for divisibleBy, format: "regex"

commit 295d43a61daf4098864137c71b652c3d18ee33f3
Author: Tim Baumann <tim@timbaumann.info>
Date:   Wed Oct 10 21:27:32 2012 +0200

    Move format.json to folder for optional tests

commit 8f5d9e281b18296baa6440a8caa8955cf5eaec5e
Author: Tim Baumann <tim@timbaumann.info>
Date:   Wed Oct 10 21:06:08 2012 +0200

    regex validation

commit f11ddc3615460fa4fc9a0e2de8efde856d138f2f
Author: Tim Baumann <tim@timbaumann.info>
Date:   Wed Oct 10 20:59:55 2012 +0200

    divisibleBy tests

commit 189e231e65d2f25f722fa362cb770ef1c264f7a2
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Wed Oct 10 10:00:42 2012 -0400

    Fix the additionalItems tests.

    Closes #4

commit a0a6e71207e4cf2c2821370320cc8e158cd70f4c
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Wed Oct 10 09:54:52 2012 -0400

    Fix nil.

    Closes #3

commit 8dbaf210b8430c8cd1058b22cc2bfc639bcbbf8b
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Oct 9 20:28:09 2012 -0400

    Fix line endings and add invalid test case.

commit 7829853a2fffa508557c1e21613709417e603f09
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sun Oct 7 10:33:14 2012 -0400

    required

commit 91e57ae1dc09d75c3885bb8124213f5e67bf2275
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sun Oct 7 10:24:35 2012 -0400

    Pattern

commit 49af2ebc9a02584fe84ee8b414930b70af24637e
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Oct 6 20:50:59 2012 -0400

    uniqueItems

commit 089ed8e819d598125bbac985aa292f78be1e1547
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Oct 6 20:50:23 2012 -0400

    Enum

commit 7e4b937146d92a8612e9b95074daf7582f6ace65
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Oct 6 20:40:53 2012 -0400

    max/min Items/Length

commit 5c27f85a33bc75a8cfddf3b66d2bae91eac9b21e
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Sat Oct 6 20:34:21 2012 -0400

    Minimum and maximum

commit 9e24adbd197dddd31d74743bbc203534eda07e9e
Merge: 3649b58 3498f34
Author: Julian Berman <Julian@GrayVines.com>
Date:   Wed Sep 26 17:16:27 2012 -0700

    Merge pull request #1 from gazpachoking/clean

    Add some more tests

commit 3498f34e94db6e20f8202c0638005d2f62931ab7
Author: Chase Sterling <chase.sterling@gmail.com>
Date:   Wed Sep 26 20:02:58 2012 -0400

    Fix an improper additionalItems test.

commit 26a3873400e6c644cbe22842565624b40c410f1e
Merge: baf0502 3649b58
Author: Chase Sterling <chase.sterling@gmail.com>
Date:   Tue Sep 25 16:48:39 2012 -0400

    Merge branch 'master' into clean

commit baf050206e12334dfe158390a9d8f8d5525b3d6d
Author: Chase Sterling <chase.sterling@gmail.com>
Date:   Tue Sep 25 16:48:30 2012 -0400

    Added items tests.

commit cb6dfb2f040c1cc581128a0fbd2a40cfa44fb994
Author: Chase Sterling <chase.sterling@gmail.com>
Date:   Tue Sep 25 16:11:21 2012 -0400

    Add cleaned up additionalItems

commit 3649b58a5ce8fefc77ee1cfaaaeaf68df278ebd6
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 15:28:13 2012 -0400

    Would be nice if I'd have properly run lint.

commit e6a270f18c77a1218abc3a7137a093a757b071db
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 15:00:57 2012 -0400

    Properties.

commit 2192a637eff388a4ee666b07635922281e78539f
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 12:40:31 2012 -0400

    Clarify test reqs.

commit ff746d00529dd7df0e56329223a8f16933aff9d1
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 12:34:22 2012 -0400

    Add MIT License.

commit 9271ce51a4e053fe40985b17c1f88715bd859eb6
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 12:29:00 2012 -0400

    A basic readme.

commit 530a0f33201ce4d718d5859f4856a65bbbcdcc73
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 12:12:43 2012 -0400

    Finish type tests.

commit 4f9cd46dd9f73a1903452b1a9f4ea99c1938fb50
Author: Julian Berman <Julian+git@GrayVines.com>
Date:   Tue Sep 25 11:49:34 2012 -0400

    Initial commit. Basic type tests.
This commit is contained in:
Julian Berman
2012-12-24 19:53:41 -05:00
parent 898ebd9ac6
commit c41787bf38
20 changed files with 277 additions and 82 deletions

4
json/.travis.yml Normal file
View File

@@ -0,0 +1,4 @@
language: python
python: "2.7"
install: pip install jsonschema
script: bin/suite_sanity_check -v

View File

@@ -1,4 +1,4 @@
Copyright (c) 2012
Copyright (c) 2012 Julian Berman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,4 +1,4 @@
JSON Schema Test Suite
JSON Schema Test Suite [![Build Status](https://travis-ci.org/json-schema/JSON-Schema-Test-Suite.png?branch=develop)](https://travis-ci.org/json-schema/JSON-Schema-Test-Suite)
======================
This repository contains a set of JSON objects that implementors of JSON Schema
@@ -6,8 +6,8 @@ validation libraries can use to test their validators.
It is meant to be language agnostic and should require only a JSON parser.
The conversion of the JSON objects into your test framework of choice (say,
an `xUnit`) is still the job of the validator implementor.
The conversion of the JSON objects into tests within your test framework of
choice is still the job of the validator implementor.
Structure of a Test
-------------------
@@ -19,7 +19,9 @@ Inside that directory is a subdirectory for each draft or version of the
schema. We'll use `draft3` as an example.
If you look inside the draft directory, there are a number of `.json` files,
which logically group a set of test cases together.
which logically group a set of test cases together. Often the grouping is by
property under test, but not always, especially within optional test files
(discussed below).
Inside each `.json` file is a single array containing objects. It's easiest to
illustrate the structure of these with an example:
@@ -27,7 +29,7 @@ illustrate the structure of these with an example:
```json
{
"description": "the description of the test case",
"schema": "the schema that should be validated against",
"schema": {"the schema that should" : "be validated against"},
"tests": [
{
"description": "a specific test of a valid instance",
@@ -50,11 +52,9 @@ they should be valid or invalid.
Coverage
--------
The coverage of this suite is actively growing. The first order of business is
to have a full-coverage draft 3 test suite.
Currently, draft 3 should have essentially full coverage for the core schema.
Ultimately, when it's done, the idea is to attempt to have it included on [the
JSON Schema website](http://www.json-schema.org).
The beginnings of draft 4 are underway.
Who Uses the Test Suite
-----------------------
@@ -64,6 +64,7 @@ This suite is being used by:
* [jsonschema (python)](https://github.com/Julian/jsonschema)
* [aeson-schema (haskell)](https://github.com/timjb/aeson-schema)
* [direct-schema (javascript)](https://github.com/IreneKnapp/direct-schema)
* [jsonschema (javascript)](https://github.com/tdegrunt/jsonschema)
If you use it as well, please fork and send a pull request adding yourself to
the list :).
@@ -71,18 +72,4 @@ the list :).
Contributing
------------
I need help! If you'd like to contribute, please fork this repository. I'd love
to have your pull requests sent over.
Right now, the way I'm compiling the tests is by porting over a test suite
that I'd written for a Python validator. The tests (in a messy format) can be
found [here](https://github.com/Julian/jsonschema/blob/master/tests.py#L100).
There are also other JSON Schema test suites for various other validators, and
it would certainly be nice to merge all of them as well. In particular, [this
validator](https://github.com/fge/json-schema-validator/tree/master/src/test/resources/keyword)
contains a set of tests already written in JSON which will be useful.
I'm perfectly fine with contributions either porting from one of those, or
being written from scratch, so feel free to do what you're comfortable with as
long as the tests are easy to understand and correct :).
If you see something missing or incorrect, a pull request is most welcome!

116
json/bin/suite_sanity_check Executable file
View File

@@ -0,0 +1,116 @@
#! /usr/bin/env python
from unittest import TestCase, skipIf
import fnmatch
import json
import logging
import os
try:
import jsonschema
except ImportError:
jsonschema = None
logging.basicConfig(level=logging.INFO)
SUITE_ROOT_DIR = os.path.join(os.path.dirname(__file__), os.pardir, "tests")
TESTSUITE_SCHEMA = {
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {"type": "string", "required": True},
"schema": {"required": True},
"tests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {"type": "string", "required": True},
"data": {"required": True},
"valid": {"type": "boolean", "required": True}
},
"additionalProperties": False
},
"minItems": 1
}
},
"additionalProperties": False,
"minItems": 1
}
}
def files(paths):
for path in paths:
with open(path) as test_file:
yield json.load(test_file)
def groups(paths):
for test_file in files(paths):
for group in test_file:
yield group
def cases(paths):
for test_group in groups(paths):
for test in test_group["tests"]:
test["schema"] = test_group["schema"]
yield test
def collect(root_dir):
for root, dirs, files in os.walk(root_dir):
for filename in fnmatch.filter(files, "*.json"):
yield os.path.join(root, filename)
class SanityTests(TestCase):
@classmethod
def setUpClass(cls):
logging.info("Looking for tests in %s", SUITE_ROOT_DIR)
cls.test_files = list(collect(SUITE_ROOT_DIR))
logging.info("Found %s test files", len(cls.test_files))
assert cls.test_files, "Didn't find the test files!"
def test_all_files_are_valid_json(self):
for path in self.test_files:
with open(path) as test_file:
try:
json.load(test_file)
except ValueError as error:
self.fail("%s contains invalid JSON (%s)" % (path, error))
def test_all_descriptions_are_unique(self):
for group in groups(self.test_files):
descriptions = {test["description"] for test in group["tests"]}
self.assertEqual(
len(descriptions),
len(group["tests"]),
"%r contains a duplicate description" % (group,)
)
@skipIf(jsonschema is None, "Validation library not present! Skipping.")
def test_all_schemas_are_valid(self):
for case in cases(self.test_files):
# XXX: Add the other versions for the other drafts
try:
jsonschema.Draft3Validator.check_schema(case["schema"])
except jsonschema.SchemaError as error:
self.fail("%s contains an invalid schema (%s)" % (case, error))
@skipIf(jsonschema is None, "Validation library not present! Skipping.")
def test_suites_are_valid(self):
validator = jsonschema.Draft3Validator(TESTSUITE_SCHEMA)
for tests in files(self.test_files):
try:
validator.validate(tests)
except jsonschema.ValidationError as error:
self.fail(str(error))
if __name__ == "__main__":
from unittest import main
main()

View File

@@ -60,6 +60,11 @@
"items defaults to empty schema so everything is valid",
"data": [ 1, 2, 3, 4, 5 ],
"valid": true
},
{
"description": "ignores non-arrays",
"data": {"foo" : "bar"},
"valid": true
}
]
},

View File

@@ -16,6 +16,11 @@
"description": "an additional property is invalid",
"data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
"valid": false
},
{
"description": "ignores non-objects",
"data": [1, 2, 3],
"valid": true
}
]
},

View File

@@ -24,6 +24,11 @@
"description": "missing dependency",
"data": {"bar": 2},
"valid": false
},
{
"description": "ignores non-objects",
"data": "foo",
"valid": true
}
]
},

View File

@@ -1,4 +1,25 @@
[
{
"description": "by int",
"schema": {"divisibleBy": 2},
"tests": [
{
"description": "int by int",
"data": 10,
"valid": true
},
{
"description": "int by int fail",
"data": 7,
"valid": false
},
{
"description": "ignores non-numbers",
"data": "foo",
"valid": true
}
]
},
{
"description": "by number",
"schema": {"divisibleBy": 1.5},
@@ -20,22 +41,6 @@
}
]
},
{
"description": "by int",
"schema": {"divisibleBy": 2},
"tests": [
{
"description": "int by int",
"data": 10,
"valid": true
},
{
"description": "int by int fail",
"data": 7,
"valid": false
}
]
},
{
"description": "by small number",
"schema": {"divisibleBy": 0.0001},

View File

@@ -1,41 +1,46 @@
[
{
"description": "a schema given for items",
"schema": {
"items": {"type": "integer"}
},
"tests": [
{
"description": "valid items",
"data": [ 1, 2, 3 ],
"valid": true
},
{
"description": "wrong type of items",
"data": [1, "x"],
"valid": false
}
]
},
{
"description": "an array of schemas for items",
"schema": {
"items": [
{"type": "integer"},
{"type": "string"}
]
},
"tests": [
{
"description": "correct types",
"data": [ 1, "foo" ],
"valid": true
},
{
"description": "wrong types",
"data": [ "foo", 1 ],
"valid": false
}
]
}
]
[
{
"description": "a schema given for items",
"schema": {
"items": {"type": "integer"}
},
"tests": [
{
"description": "valid items",
"data": [ 1, 2, 3 ],
"valid": true
},
{
"description": "wrong type of items",
"data": [1, "x"],
"valid": false
},
{
"description": "ignores non-arrays",
"data": {"foo" : "bar"},
"valid": true
}
]
},
{
"description": "an array of schemas for items",
"schema": {
"items": [
{"type": "integer"},
{"type": "string"}
]
},
"tests": [
{
"description": "correct types",
"data": [ 1, "foo" ],
"valid": true
},
{
"description": "wrong types",
"data": [ "foo", 1 ],
"valid": false
}
]
}
]

View File

@@ -17,6 +17,11 @@
"description": "too long is invalid",
"data": [1, 2, 3],
"valid": false
},
{
"description": "ignores non-arrays",
"data": "foobar",
"valid": true
}
]
}

View File

@@ -17,6 +17,11 @@
"description": "too long is invalid",
"data": "foo",
"valid": false
},
{
"description": "ignores non-strings",
"data": 10,
"valid": true
}
]
}

View File

@@ -12,6 +12,11 @@
"description": "above the maximum is invalid",
"data": 3.5,
"valid": false
},
{
"description": "ignores non-numbers",
"data": "x",
"valid": true
}
]
},

View File

@@ -17,6 +17,11 @@
"description": "too short is invalid",
"data": [],
"valid": false
},
{
"description": "ignores non-arrays",
"data": "",
"valid": true
}
]
}

View File

@@ -17,6 +17,11 @@
"description": "too short is invalid",
"data": "f",
"valid": false
},
{
"description": "ignores non-strings",
"data": 1,
"valid": true
}
]
}

View File

@@ -12,6 +12,11 @@
"description": "below the minimum is invalid",
"data": 0.6,
"valid": false
},
{
"description": "ignores non-numbers",
"data": "x",
"valid": true
}
]
},

View File

@@ -0,0 +1,13 @@
[
{
"description": "support for bignums",
"schema": {"type": "integer"},
"tests": [
{
"description": "a bignum is an integer",
"data": 12345678910111213141516171819202122232425262728293031,
"valid": true
}
]
}
]

View File

@@ -12,6 +12,11 @@
"description": "a non-matching pattern is invalid",
"data": "abc",
"valid": false
},
{
"description": "ignores non-strings",
"data": true,
"valid": true
}
]
}

View File

@@ -27,6 +27,11 @@
"description": "doesn't invalidate other properties",
"data": {"quux": []},
"valid": true
},
{
"description": "ignores non-objects",
"data": [],
"valid": true
}
]
},

View File

@@ -13,6 +13,11 @@
"data": 1.1,
"valid": false
},
{
"description": "a float is not an integer even without fractional part",
"data": 1.0,
"valid": false
},
{
"description": "a string is not an integer",
"data": "foo",

View File

@@ -13,6 +13,11 @@
"data": [1, 1],
"valid": false
},
{
"description": "numbers are unique if mathematically unequal",
"data": [1.0, 1.00, 1],
"valid": false
},
{
"description": "unique array of objects is valid",
"data": [{"foo": "bar"}, {"foo": "baz"}],