jsonlogic-hs-0.1.0.0: test/community/array/none.json
[
"Basic Operations",
{
"description": "None of the elements are negative",
"rule": {
"none": [
{"var": "numbers"},
{"<": [{"var": ""}, 0]}
]
},
"data": {"numbers": [1, 2, 3, 4]},
"result": true
},
{
"description": "Some elements are negative (none returns false)",
"rule": {
"none": [
{"var": "numbers"},
{"<": [{"var": ""}, 0]}
]
},
"data": {"numbers": [-1, 0, 1, 2]},
"result": false
},
"Object Operations",
{
"description": "None of the objects are underage",
"rule": {
"none": [
{"var": "people"},
{"<": [{"var": "age"}, 18]}
]
},
"data": {
"people": [
{"name": "John", "age": 25},
{"name": "Jane", "age": 22},
{"name": "Bob", "age": 19}
]
},
"result": true
},
{
"description": "None of items are out of stock",
"rule": {
"none": [
{"var": "items"},
{"==": [{"var": "stock"}, 0]}
]
},
"data": {
"items": [
{"id": 1, "stock": 5},
{"id": 2, "stock": 15},
{"id": 3, "stock": 3}
]
},
"result": true
},
"Edge Cases",
{
"description": "Empty array returns true",
"rule": {
"none": [
{"var": "empty"},
{"<": [{"var": ""}, 0]}
]
},
"data": {"empty": []},
"result": true
},
{
"description": "Null array should throw",
"rule": {
"none": [
null,
{"<": [{"var": ""}, 0]}
]
},
"data": null,
"error": {"type": "Invalid Arguments"}
},
{
"description": "Missing array returns error",
"rule": {
"none": [
{"var": "missing"},
{"<": [{"var": ""}, 0]}
]
},
"data": {},
"error": {"type": "Invalid Arguments"}
},
{
"description": "Null predicate returns true",
"rule": {
"none": [
{"var": "numbers"},
null
]
},
"data": {"numbers": [1, 2, 3]},
"result": true
},
"Complex Predicates",
{
"description": "None with compound conditions",
"rule": {
"none": [
{"var": "scores"},
{"and": [
{"<": [{"var": ""}, 60]},
{">": [{"var": ""}, 0]}
]}
]
},
"data": {
"scores": [75, 85, 95, 65]
},
"result": true
},
{
"description": "None with nested array operations",
"rule": {
"none": [
{"var": "classes"},
{"none": [
{"var": "students"},
{"==": [{"var": "grade"}, "F"]}
]}
]
},
"data": {
"classes": [
{"students": [{"grade": "B"}, {"grade": "C"}]},
{"students": [{"grade": "A"}, {"grade": "B"}]}
]
},
"result": false
},
"Type Coercion",
{
"description": "None with mixed types coercion to boolean",
"rule": {
"none": [
{"var": "values"},
{"!!": [{"var": ""}]}
]
},
"data": {"values": [0, "", false, null]},
"result": true
},
{
"description": "None with string operations",
"rule": {
"none": [
{"var": "words"},
{"in": ["x", {"var": ""}]}
]
},
"data": {"words": ["hello", "world", "test"]},
"result": true
},
{
"description": "None with zero length strings",
"rule": {
"none": [
{"var": "strings"},
{"==": [{"var": "length"}, 0]}
]
},
"data": {
"strings": [
{"text": "hello", "length": 5},
{"text": "world", "length": 5}
]
},
"result": true
}
]