packages feed

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
  }
]