This adds tests that essentially say all instances are valid under "not": false and all are invalid under "not": true and "not": {}.
One would think these would be quite trivial tests... but not all implementations pass them surprisingly!
This was noticed as part of tweaking Bowtie's smoke test for implementations -- which it uses to make sure JSON Schema implementations are running correctly -- in what I thought was a non-functionally meaningful way.
But it turns out one implementation fails one of these tests :) -- namely it incorrectly considers null valid under not: {}.
The actual contents here match what we use in other places (e.g. in boolean-schemas.json).
While we're here, this also adds a test for not: not, i.e. double negation, with just one value to check.
This adds tests that essentially say all instances are valid under
"not": false
and all are invalid under"not": true
and"not": {}
.One would think these would be quite trivial tests... but not all implementations pass them surprisingly!
This was noticed as part of tweaking Bowtie's smoke test for implementations -- which it uses to make sure JSON Schema implementations are running correctly -- in what I thought was a non-functionally meaningful way.
But it turns out one implementation fails one of these tests :) -- namely it incorrectly considers
null
valid undernot: {}
.The actual contents here match what we use in other places (e.g. in boolean-schemas.json).
While we're here, this also adds a test for not: not, i.e. double negation, with just one value to check.