jsonlogic-hs-0.1.0.0: test/community/val-compat.json
[
"If the consequents are logic, they get evaluated",
{
"description": "[1,{\"var\":\"x\"},3]",
"rule": [ 1, {"val": "x"}, 3 ],
"data": {"x": 2},
"result": [1, 2, 3]
},
{
"description": "{\"if\":[{\"var\":\"x\"},[{\"var\":\"y\"}],99]}",
"rule": {
"if": [
{"val": "x"},
[ {"val": "y"} ],
99
]
},
"data": {"x": true, "y": 42},
"result": [42]
},
{
"description": "{\"var\":[\"a\"]}",
"rule": { "val": ["a"] },
"data": {"a": 1},
"result": 1
},
{
"description": "{\"var\":[\"b\"]}",
"rule": { "val": ["b"] },
"data": {"a": 1},
"result": null
},
{
"description": "{\"var\":[\"a\"]}",
"rule": { "val": ["a"] },
"data": null,
"result": null
},
{ "description": "{\"var\":\"a\"}", "rule": {"val": "a"}, "data": {"a": 1}, "result": 1 },
{ "description": "{\"var\":\"b\"}", "rule": {"val": "b"}, "data": {"a": 1}, "result": null },
{ "description": "{\"var\":\"a\"}", "rule": {"val": "a"}, "data": null, "result": null },
{
"description": "{\"var\":\"a.b\"}",
"rule": { "val": ["a", "b"] },
"data": { "a": {"b": "c"} },
"result": "c"
},
{
"description": "{\"var\":\"a.q\"}",
"rule": { "val": ["a", "q"] },
"data": { "a": {"b": "c"} },
"result": null
},
{
"description": "{\"var\":1}",
"rule": {"val": 1},
"data": ["apple", "banana"],
"result": "banana"
},
{
"description": "{\"var\":\"1\"}",
"rule": {"val": "1"},
"data": ["apple", "banana"],
"result": "banana"
},
{
"description": "{\"var\":\"1.1\"}",
"rule": { "val": [1, 1] },
"data": [ "apple", ["banana", "beer"] ],
"result": "beer"
},
{
"description": "{\"and\":[{\"<\":[{\"var\":\"temp\"},110]},{\"==\":[{\"var\":\"pie.filling\"},\"apple\"]}]}",
"rule": {
"and": [
{
"<": [ {"val": "temp"}, 110 ]
},
{
"==": [
{ "val": ["pie", "filling"] },
"apple"
]
}
]
},
"data": { "temp": 100, "pie": {"filling": "apple"} },
"result": true
},
{
"description": "{\"var\":[{\"?:\":[{\"<\":[{\"var\":\"temp\"},110]},\"pie.filling\",\"pie.eta\"]}]}",
"rule": {
"?:": [
{ "<": [ {"val": "temp"}, 110 ] },
{ "val": ["pie", "filling"] },
{ "val": ["pie", "eta"] }
]
},
"data": { "temp": 100, "pie": {"filling": "apple", "eta": "60s"} },
"result": "apple"
},
{
"description": "{\"in\":[{\"var\":\"filling\"},[\"apple\",\"cherry\"]]}",
"rule": {
"in": [ {"val": "filling"}, ["apple", "cherry"] ]
},
"data": {"filling": "apple"},
"result": true
},
{
"description": "{\"var\":\"a.b.c\"}",
"rule": { "val": ["a", "b", "c"] },
"data": null,
"result": null
},
{
"description": "{\"var\":\"a.b.c\"}",
"rule": { "val": ["a", "b", "c"] },
"data": {"a": null},
"result": null
},
{
"description": "{\"var\":\"a.b.c\"}",
"rule": { "val": ["a", "b", "c"] },
"data": { "a": {"b": null} },
"result": null
},
{ "description": "{\"var\":\"\"}", "rule": {"val": []}, "data": 1, "result": 1 },
{ "description": "{\"val\":[]}", "rule": {"val": []}, "data": 1, "result": 1 },
{
"description": "{\"missing\":{\"merge\":[\"vin\",{\"if\":[{\"var\":\"financing\"},[\"apr\"],[]]}]}}",
"rule": {
"missing": {
"merge": [
"vin",
{
"if": [ {"val": "financing"}, ["apr"], [] ]
}
]
}
},
"data": {"financing": true},
"result": ["vin", "apr"]
},
{
"description": "{\"missing\":{\"merge\":[\"vin\",{\"if\":[{\"var\":\"financing\"},[\"apr\"],[]]}]}}",
"rule": {
"missing": {
"merge": [
"vin",
{
"if": [ {"val": "financing"}, ["apr"], [] ]
}
]
}
},
"data": {"financing": false},
"result": ["vin"]
},
{
"description": "{\"filter\":[{\"var\":\"integers\"},true]}",
"rule": {
"filter": [ {"val": "integers"}, true ]
},
"data": { "integers": [1, 2, 3] },
"result": [1, 2, 3]
},
{
"description": "{\"filter\":[{\"var\":\"integers\"},false]}",
"rule": {
"filter": [ {"val": "integers"}, false ]
},
"data": { "integers": [1, 2, 3] },
"result": []
},
{
"description": "{\"filter\":[{\"var\":\"integers\"},{\">=\":[{\"var\":\"\"},2]}]}",
"rule": {
"filter": [
{"val": "integers"},
{
">=": [ {"val": []}, 2 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": [2, 3]
},
{
"description": "{\"filter\":[{\"var\":\"integers\"},{\"%\":[{\"var\":\"\"},2]}]}",
"rule": {
"filter": [
{"val": "integers"},
{
"%": [ {"val": []}, 2 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": [1, 3]
},
{
"description": "{\"map\":[{\"var\":\"integers\"},{\"*\":[{\"var\":\"\"},2]}]}",
"rule": {
"map": [
{"val": "integers"},
{
"*": [ {"val": []}, 2 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": [2, 4, 6]
},
{
"description": "{\"map\":[{\"var\":\"integers\"},{\"*\":[{\"var\":\"\"},2]}]}",
"rule": {
"map": [
{"val": "integers"},
{
"*": [ {"val": []}, 2 ]
}
]
},
"data": null,
"result": []
},
{
"description": "{\"map\":[{\"var\":\"desserts\"},{\"var\":\"qty\"}]}",
"rule": {
"map": [ {"val": "desserts"}, {"val": "qty"} ]
},
"data": {
"desserts": [
{"name": "apple" , "qty": 1},
{"name": "brownie", "qty": 2},
{"name": "cupcake", "qty": 3}
]
},
"result": [1, 2, 3]
},
{
"description": "{\"reduce\":[{\"var\":\"integers\"},{\"+\":[{\"var\":\"current\"},{\"var\":\"accumulator\"}]},0]}",
"rule": {
"reduce": [
{"val": "integers"},
{
"+": [ {"val": "current"}, {"val": "accumulator"} ]
},
0
]
},
"data": { "integers": [1, 2, 3, 4] },
"result": 10
},
{
"description": "{\"reduce\":[{\"var\":\"integers\"},{\"+\":[{\"var\":\"current\"},{\"var\":\"accumulator\"}]},{\"var\":\"start_with\"}]}",
"rule": {
"reduce": [
{"val": "integers"},
{
"+": [ {"val": "current"}, {"val": "accumulator"} ]
},
{"val": "start_with"}
]
},
"data": { "integers": [1, 2, 3, 4], "start_with": 59 },
"result": 69
},
{
"description": "{\"reduce\":[{\"var\":\"integers\"},{\"+\":[{\"var\":\"current\"},{\"var\":\"accumulator\"}]},0]}",
"rule": {
"reduce": [
{"val": "integers"},
{
"+": [ {"val": "current"}, {"val": "accumulator"} ]
},
0
]
},
"data": null,
"result": 0
},
{
"description": "{\"reduce\":[{\"var\":\"integers\"},{\"*\":[{\"var\":\"current\"},{\"var\":\"accumulator\"}]},1]}",
"rule": {
"reduce": [
{"val": "integers"},
{
"*": [ {"val": "current"}, {"val": "accumulator"} ]
},
1
]
},
"data": { "integers": [1, 2, 3, 4] },
"result": 24
},
{
"description": "{\"reduce\":[{\"var\":\"integers\"},{\"*\":[{\"var\":\"current\"},{\"var\":\"accumulator\"}]},0]}",
"rule": {
"reduce": [
{"val": "integers"},
{
"*": [ {"val": "current"}, {"val": "accumulator"} ]
},
0
]
},
"data": { "integers": [1, 2, 3, 4] },
"result": 0
},
{
"description": "{\"reduce\":[{\"var\":\"desserts\"},{\"+\":[{\"var\":\"accumulator\"},{\"var\":\"current.qty\"}]},0]}",
"rule": {
"reduce": [
{"val": "desserts"},
{
"+": [
{ "val": "accumulator" },
{ "val": ["current", "qty"] }
]
},
0
]
},
"data": {
"desserts": [
{"name": "apple" , "qty": 1},
{"name": "brownie", "qty": 2},
{"name": "cupcake", "qty": 3}
]
},
"result": 6
},
{
"description": "{\"all\":[{\"var\":\"integers\"},{\">=\":[{\"var\":\"\"},1]}]}",
"rule": {
"all": [
{"val": "integers"},
{
">=": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": true
},
{
"description": "{\"all\":[{\"var\":\"integers\"},{\"==\":[{\"var\":\"\"},1]}]}",
"rule": {
"all": [
{"val": "integers"},
{
"==": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": false
},
{
"description": "{\"all\":[{\"var\":\"integers\"},{\"<\":[{\"var\":\"\"},1]}]}",
"rule": {
"all": [
{"val": "integers"},
{
"<": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": false
},
{
"description": "{\"all\":[{\"var\":\"integers\"},{\"<\":[{\"var\":\"\"},1]}]}",
"rule": {
"all": [
{"val": "integers"},
{
"<": [ {"val": []}, 1 ]
}
]
},
"data": {"integers": []},
"result": false
},
{
"description": "{\"all\":[{\"var\":\"items\"},{\">=\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"all": [
{"val": "items"},
{
">=": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": true
},
{
"description": "{\"all\":[{\"var\":\"items\"},{\">\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"all": [
{"val": "items"},
{
">": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": false
},
{
"description": "{\"all\":[{\"var\":\"items\"},{\"<\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"all": [
{"val": "items"},
{
"<": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": false
},
{
"description": "{\"all\":[{\"var\":\"items\"},{\">=\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"all": [
{"val": "items"},
{
">=": [ {"val": "qty"}, 1 ]
}
]
},
"data": {"items": []},
"result": false
},
{
"description": "{\"none\":[{\"var\":\"integers\"},{\">=\":[{\"var\":\"\"},1]}]}",
"rule": {
"none": [
{"val": "integers"},
{
">=": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": false
},
{
"description": "{\"none\":[{\"var\":\"integers\"},{\"==\":[{\"var\":\"\"},1]}]}",
"rule": {
"none": [
{"val": "integers"},
{
"==": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": false
},
{
"description": "{\"none\":[{\"var\":\"integers\"},{\"<\":[{\"var\":\"\"},1]}]}",
"rule": {
"none": [
{"val": "integers"},
{
"<": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": true
},
{
"description": "{\"none\":[{\"var\":\"integers\"},{\"<\":[{\"var\":\"\"},1]}]}",
"rule": {
"none": [
{"val": "integers"},
{
"<": [ {"val": []}, 1 ]
}
]
},
"data": {"integers": []},
"result": true
},
{
"description": "{\"none\":[{\"var\":\"items\"},{\">=\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"none": [
{"val": "items"},
{
">=": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": false
},
{
"description": "{\"none\":[{\"var\":\"items\"},{\">\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"none": [
{"val": "items"},
{
">": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": false
},
{
"description": "{\"none\":[{\"var\":\"items\"},{\"<\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"none": [
{"val": "items"},
{
"<": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": true
},
{
"description": "{\"none\":[{\"var\":\"items\"},{\">=\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"none": [
{"val": "items"},
{
">=": [ {"val": "qty"}, 1 ]
}
]
},
"data": {"items": []},
"result": true
},
{
"description": "{\"some\":[{\"var\":\"integers\"},{\">=\":[{\"var\":\"\"},1]}]}",
"rule": {
"some": [
{"val": "integers"},
{
">=": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": true
},
{
"description": "{\"some\":[{\"var\":\"integers\"},{\"==\":[{\"var\":\"\"},1]}]}",
"rule": {
"some": [
{"val": "integers"},
{
"==": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": true
},
{
"description": "{\"some\":[{\"var\":\"integers\"},{\"<\":[{\"var\":\"\"},1]}]}",
"rule": {
"some": [
{"val": "integers"},
{
"<": [ {"val": []}, 1 ]
}
]
},
"data": { "integers": [1, 2, 3] },
"result": false
},
{
"description": "{\"some\":[{\"var\":\"integers\"},{\"<\":[{\"var\":\"\"},1]}]}",
"rule": {
"some": [
{"val": "integers"},
{
"<": [ {"val": []}, 1 ]
}
]
},
"data": {"integers": []},
"result": false
},
{
"description": "{\"some\":[{\"var\":\"items\"},{\">=\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"some": [
{"val": "items"},
{
">=": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": true
},
{
"description": "{\"some\":[{\"var\":\"items\"},{\">\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"some": [
{"val": "items"},
{
">": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": true
},
{
"description": "{\"some\":[{\"var\":\"items\"},{\"<\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"some": [
{"val": "items"},
{
"<": [ {"val": "qty"}, 1 ]
}
]
},
"data": {
"items": [ {"qty": 1, "sku": "apple"}, {"qty": 2, "sku": "banana"} ]
},
"result": false
},
{
"description": "{\"some\":[{\"var\":\"items\"},{\">=\":[{\"var\":\"qty\"},1]}]}",
"rule": {
"some": [
{"val": "items"},
{
">=": [ {"val": "qty"}, 1 ]
}
]
},
"data": {"items": []},
"result": false
}
]