[
    "# Non-rules get passed through",
    [ true, {}, true ],
    [ false, {}, false ],
    [ 17, {}, 17 ],
    [ 3.14, {}, 3.14, "BYDESIGN-LITERAL-FLOAT" ],
    [ "apple", {}, "apple" ],
    [ null, {}, null, "BYDESIGN-LITERAL-NULL" ],
    [ ["a","b"], {}, ["a","b"] ],

    "# Single operator tests",
    [ {"==":[1,1]}, {}, true ],
    [ {"==":[1,"1"]}, {}, true, "BYDESIGN-COERCION" ],
    [ {"==":[1,2]}, {}, false ],
    [ {"===":[1,1]}, {}, true ],
    [ {"===":[1,"1"]}, {}, false, "BYDESIGN-COERCION" ],
    [ {"===":[1,2]}, {}, false ],
    [ {"!=":[1,2]}, {}, true ],
    [ {"!=":[1,1]}, {}, false ],
    [ {"!=":[1,"1"]}, {}, false, "BYDESIGN-COERCION" ],
    [ {"!==":[1,2]}, {}, true ],
    [ {"!==":[1,1]}, {}, false ],
    [ {"!==":[1,"1"]}, {}, true, "BYDESIGN-COERCION" ],
    [ {">":[2,1]}, {}, true ],
    [ {">":[1,1]}, {}, false ],
    [ {">":[1,2]}, {}, false ],
    [ {">":["2",1]}, {}, true, "BYDESIGN-COERCION" ],
    [ {">=":[2,1]}, {}, true ],
    [ {">=":[1,1]}, {}, true ],
    [ {">=":[1,2]}, {}, false ],
    [ {">=":["2",1]}, {}, true, "BYDESIGN-COERCION" ],
    [ {"<":[2,1]}, {}, false ],
    [ {"<":[1,1]}, {}, false ],
    [ {"<":[1,2]}, {}, true ],
    [ {"<":["1",2]}, {}, true, "BYDESIGN-COERCION" ],
    [ {"<":[1,2,3]}, {}, true ],
    [ {"<":[1,1,3]}, {}, false ],
    [ {"<":[1,4,3]}, {}, false ],
    [ {"<=":[2,1]}, {}, false ],
    [ {"<=":[1,1]}, {}, true ],
    [ {"<=":[1,2]}, {}, true ],
    [ {"<=":["1",2]}, {}, true, "BYDESIGN-COERCION" ],
    [ {"<=":[1,2,3]}, {}, true ],
    [ {"<=":[1,4,3]}, {}, false ],
    [ {"!":[false]}, {}, true ],
    [ {"!":false}, {}, true ],
    [ {"!":[true]}, {}, false ],
    [ {"!":true}, {}, false ],
    [ {"!":0}, {}, true, "BYDESIGN-TRUTHINESS" ],
    [ {"!":1}, {}, false, "BYDESIGN-TRUTHINESS" ],
    [ {"or":[true,true]}, {}, true ],
    [ {"or":[false,true]}, {}, true ],
    [ {"or":[true,false]}, {}, true ],
    [ {"or":[false,false]}, {}, false ],
    [ {"or":[false,false,true]}, {}, true ],
    [ {"or":[false,false,false]}, {}, false ],
    [ {"or":[false]}, {}, false ],
    [ {"or":[true]}, {}, true ],
    [ {"or":[1,3]}, {}, 1, "BYDESIGN-TRUTHINESS" ],
    [ {"or":[3,false]}, {}, 3, "BYDESIGN-TRUTHINESS" ],
    [ {"or":[false,3]}, {}, 3, "BYDESIGN-TRUTHINESS" ],
    [ {"and":[true,true]}, {}, true ],
    [ {"and":[false,true]}, {}, false ],
    [ {"and":[true,false]}, {}, false ],
    [ {"and":[false,false]}, {}, false ],
    [ {"and":[true,true,true]}, {}, true ],
    [ {"and":[true,true,false]}, {}, false ],
    [ {"and":[false]}, {}, false ],
    [ {"and":[true]}, {}, true ],
    [ {"and":[1,3]}, {}, 3, "BYDESIGN-TRUTHINESS" ],
    [ {"and":[3,false]}, {}, false, "BYDESIGN-TRUTHINESS" ],
    [ {"and":[false,3]}, {}, false, "BYDESIGN-TRUTHINESS" ],
    [ {"?:":[true,1,2]}, {}, 1, "BYDESIGN-OPERATOR-TERNARY" ],
    [ {"?:":[false,1,2]}, {}, 2, "BYDESIGN-OPERATOR-TERNARY" ],
    [ {"in":["Bart",["Bart","Homer","Lisa","Marge","Maggie"]]}, {}, true, "NOTIMPL-OPERATOR-STRING-IN" ],
    [ {"in":["Milhouse",["Bart","Homer","Lisa","Marge","Maggie"]]}, {}, false, "NOTIMPL-OPERATOR-STRING-IN" ],
    [ {"in":["Spring","Springfield"]}, {}, true, "NOTIMPL-OPERATOR-STRING-IN" ],
    [ {"in":["i","team"]}, {}, false, "NOTIMPL-OPERATOR-STRING-IN" ],
    [ {"cat":"ice"}, {}, "ice" ],
    [ {"cat":["ice"]}, {}, "ice" ],
    [ {"cat":["ice","cream"]}, {}, "icecream" ],
    [ {"cat":[1,2]}, {}, "12", "BYDESIGN-TYPE-COERCION" ],
    [ {"cat":["Robocop",2]}, {}, "Robocop2", "BYDESIGN-TYPE-COERCION" ],
    [ {"cat":["we all scream for ","ice","cream"]}, {}, "we all scream for icecream" ],
    [ {"%":[1,2]}, {}, 1, "BYDESIGN-OPERATOR-DIVISION" ],
    [ {"%":[2,2]}, {}, 0, "BYDESIGN-OPERATOR-DIVISION" ],
    [ {"%":[3,2]}, {}, 1, "BYDESIGN-OPERATOR-DIVISION" ],
    [ {"max":[1,2,3]}, {}, 3 ],
    [ {"max":[1,3,3]}, {}, 3 ],
    [ {"max":[3,2,1]}, {}, 3 ],
    [ {"max":[1]}, {}, 1 ],
    [ {"min":[1,2,3]}, {}, 1 ],
    [ {"min":[1,1,3]}, {}, 1 ],
    [ {"min":[3,2,1]}, {}, 1 ],
    [ {"min":[1]}, {}, 1 ],

    [ {"+":[1,2]}, {}, 3 ],
    [ {"+":[2,2,2]}, {}, 6 ],
    [ {"+":[1]}, {}, 1 ],
    [ {"+":["1",1]}, {}, 2, "BYDESIGN-COERCION" ],
    [ {"*":[3,2]}, {}, 6 ],
    [ {"*":[2,2,2]}, {}, 8 ],
    [ {"*":[1]}, {}, 1 ],
    [ {"*":["1",1]}, {}, 1, "BYDESIGN-COERCION" ],
    [ {"-":[2,3]}, {}, -1 ],
    [ {"-":[3,2]}, {}, 1 ],
    [ {"-":[3]}, {}, -3 ],
    [ {"-":["1",1]}, {}, 0, "BYDESIGN-COERCION" ],
    [ {"/":[4,2]}, {}, 2, "BYDESIGN-OPERATOR-DIVISION" ],
    [ {"/":[2,4]}, {}, 0.5, "BYDESIGN-OPERATOR-DIVISION" ],
    [ {"/":["1",1]}, {}, 1, "BYDESIGN-OPERATOR-DIVISION" ],

    "Substring",
    [{"substr":["jsonlogic", 4]}, null, "logic", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", -5]}, null, "logic", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", 0, 1]}, null, "j", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", -1, 1]}, null, "c", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", 4, 5]}, null, "logic", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", -5, 5]}, null, "logic", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", -5, -2]}, null, "log", "NOTIMPL-OPERATOR-STRING-SUBSTR"],
    [{"substr":["jsonlogic", 1, -5]}, null, "son", "NOTIMPL-OPERATOR-STRING-SUBSTR"],

    "Merge arrays",
    [{"merge":[]}, null, [], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[[1]]}, null, [1], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[[1],[]]}, null, [1], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[[1], [2]]}, null, [1,2], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[[1], [2], [3]]}, null, [1,2,3], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[[1, 2], [3]]}, null, [1,2,3], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[[1], [2, 3]]}, null, [1,2,3], "NOTIMPL-OPERATOR-LIST-MERGE"],
    "Given non-array arguments, merge converts them to arrays",
    [{"merge":1}, null, [1], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[1,2]}, null, [1,2], "NOTIMPL-OPERATOR-LIST-MERGE"],
    [{"merge":[1,[2]]}, null, [1,2], "NOTIMPL-OPERATOR-LIST-MERGE"],

    "Too few args",
    [{"if":[]}, null, null, "BYDESIGN-IF-MINIMAL"],
    [{"if":[true]}, null, true, "BYDESIGN-IF-MINIMAL"],
    [{"if":[false]}, null, false, "BYDESIGN-IF-MINIMAL"],
    [{"if":["apple"]}, null, "apple", "BYDESIGN-IF-MINIMAL"],

    "Simple if/then/else cases",
    [{"if":[true, "apple"]}, null, "apple", "BYDESIGN-IF-MINIMAL"],
    [{"if":[false, "apple"]}, null, null, "BYDESIGN-IF-MINIMAL"],
    [{"if":[true, "apple", "banana"]}, null, "apple"],
    [{"if":[false, "apple", "banana"]}, null, "banana"],

    "Empty arrays are falsey",
    [{"if":[ [], "apple", "banana"]}, null, "banana", "BYDESIGN-TRUTHINESS"],
    [{"if":[ [1], "apple", "banana"]}, null, "apple", "BYDESIGN-TRUTHINESS"],
    [{"if":[ [1,2,3,4], "apple", "banana"]}, null, "apple", "BYDESIGN-TRUTHINESS"],

    "Empty strings are falsey, all other strings are truthy",
    [{"if":[ "", "apple", "banana"]}, null, "banana", "BYDESIGN-TRUTHINESS"],
    [{"if":[ "zucchini", "apple", "banana"]}, null, "apple", "BYDESIGN-TRUTHINESS"],
    [{"if":[ "0", "apple", "banana"]}, null, "apple", "BYDESIGN-TRUTHINESS"],

    "You can cast a string to numeric with a unary + ",
    [{"===":[0,"0"]}, null, false, "BYDESIGN-COERCION"],
    [{"===":[0,{"+":"0"}]}, null, true, "NOTIMPL-OPERATOR-STRICT"],
    [{"if":[ {"+":"0"}, "apple", "banana"]}, null, "banana", "BYDESIGN-COERCION"],
    [{"if":[ {"+":"1"}, "apple", "banana"]}, null, "apple", "BYDESIGN-COERCION"],

    "Zero is falsy, all other numbers are truthy",
    [{"if":[ 0, "apple", "banana"]}, null, "banana", "BYDESIGN-TRUTHINESS"],
    [{"if":[ 1, "apple", "banana"]}, null, "apple", "BYDESIGN-TRUTHINESS"],
    [{"if":[ 3.1416, "apple", "banana"]}, null, "apple", "BYDESIGN-LITERAL-FLOAT"],
    [{"if":[ -1, "apple", "banana"]}, null, "apple", "BYDESIGN-TRUTHINESS"],

    "Truthy and falsy definitions matter in Boolean operations",
    [{"!" : [ [] ]}, {}, true, "BYDESIGN-TRUTHINESS"],
    [{"!!" : [ [] ]}, {}, false, "BYDESIGN-TRUTHINESS"],
    [{"and" : [ [], true ]}, {}, [], "BYDESIGN-TRUTHINESS"],
    [{"or" : [ [], true ]}, {}, true, "BYDESIGN-TRUTHINESS"],

    [{"!" : [ 0 ]}, {}, true, "BYDESIGN-TRUTHINESS"],
    [{"!!" : [ 0 ]}, {}, false, "BYDESIGN-TRUTHINESS"],
    [{"and" : [ 0, true ]}, {}, 0, "BYDESIGN-TRUTHINESS"],
    [{"or" : [ 0, true ]}, {}, true, "BYDESIGN-TRUTHINESS"],

    [{"!" : [ "" ]}, {}, true, "BYDESIGN-TRUTHINESS"],
    [{"!!" : [ "" ]}, {}, false, "BYDESIGN-TRUTHINESS"],
    [{"and" : [ "", true ]}, {}, "", "BYDESIGN-TRUTHINESS"],
    [{"or" : [ "", true ]}, {}, true, "BYDESIGN-TRUTHINESS"],

    [{"!" : [ "0" ]}, {}, false, "BYDESIGN-TRUTHINESS"],
    [{"!!" : [ "0" ]}, {}, true, "BYDESIGN-TRUTHINESS"],
    [{"and" : [ "0", true ]}, {}, true, "BYDESIGN-TRUTHINESS"],
    [{"or" : [ "0", true ]}, {}, "0", "BYDESIGN-TRUTHINESS"],

    "If the conditional is logic, it gets evaluated",
    [{"if":[ {">":[2,1]}, "apple", "banana"]}, null, "apple"],
    [{"if":[ {">":[1,2]}, "apple", "banana"]}, null, "banana"],

    "If the consequents are logic, they get evaluated",
    [{"if":[ true, {"cat":["ap","ple"]}, {"cat":["ba","na","na"]} ]}, null, "apple"],
    [{"if":[ false, {"cat":["ap","ple"]}, {"cat":["ba","na","na"]} ]}, null, "banana"],

    "If/then/elseif/then cases",
    [{"if":[true, "apple", true, "banana"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[true, "apple", false, "banana"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", true, "banana"]}, null, "banana", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", false, "banana"]}, null, null, "BYDESIGN-IF-CHAINED"],

    [{"if":[true, "apple", true, "banana", "carrot"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[true, "apple", false, "banana", "carrot"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", true, "banana", "carrot"]}, null, "banana", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", false, "banana", "carrot"]}, null, "carrot", "BYDESIGN-IF-CHAINED"],

    [{"if":[false, "apple", false, "banana", false, "carrot"]}, null, null, "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", false, "banana", false, "carrot", "date"]}, null, "date", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", false, "banana", true, "carrot", "date"]}, null, "carrot", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", true, "banana", false, "carrot", "date"]}, null, "banana", "BYDESIGN-IF-CHAINED"],
    [{"if":[false, "apple", true, "banana", true, "carrot", "date"]}, null, "banana", "BYDESIGN-IF-CHAINED"],
    [{"if":[true, "apple", false, "banana", false, "carrot", "date"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[true, "apple", false, "banana", true, "carrot", "date"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[true, "apple", true, "banana", false, "carrot", "date"]}, null, "apple", "BYDESIGN-IF-CHAINED"],
    [{"if":[true, "apple", true, "banana", true, "carrot", "date"]}, null, "apple", "BYDESIGN-IF-CHAINED"],

    "Arrays with logic",
    [[1, {"var": "x"}, 3], {"x": 2}, [1, 2, 3], "NOTIMPL-DATA-CONTEXT"],
    [{"if": [{"var": "x"}, [{"var": "y"}], 99]}, {"x": true, "y": 42}, [42], "NOTIMPL-DATA-CONTEXT"],

    "# Compound Tests",
    [ {"and":[{">":[3,1]},true]}, {}, true ],
    [ {"and":[{">":[3,1]},false]}, {}, false ],
    [ {"and":[{">":[3,1]},{"!":true}]}, {}, false ],
    [ {"and":[{">":[3,1]},{"<":[1,3]}]}, {}, true ],
    [ {"?:":[{">":[3,1]},"visible","hidden"]}, {}, "visible", "BYDESIGN-OPERATOR-TERNARY" ],

    "# Data-Driven",
    [ {"var":["a"]},{"a":1},1, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":["b"]},{"a":1},null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":["a"]},null,null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"a"},{"a":1},1, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"b"},{"a":1},null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"a"},null,null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":["a", 1]},null,1, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":["b", 2]},{"a":1},2, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"a.b"},{"a":{"b":"c"}},"c", "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"a.q"},{"a":{"b":"c"}},null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":["a.q", 9]},{"a":{"b":"c"}},9, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":1}, ["apple","banana"], "banana", "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"1"}, ["apple","banana"], "banana", "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"1.1"}, ["apple",["banana","beer"]], "beer", "NOTIMPL-DATA-CONTEXT" ],
    [ {"and":[{"<":[{"var":"temp"},110]},{"==":[{"var":"pie.filling"},"apple"]}]},{"temp":100,"pie":{"filling":"apple"}},true, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":[{"?:":[{"<":[{"var":"temp"},110]},"pie.filling","pie.eta"]}]},{"temp":100,"pie":{"filling":"apple","eta":"60s"}},"apple", "NOTIMPL-DATA-CONTEXT" ],
    [ {"in":[{"var":"filling"},["apple","cherry"]]},{"filling":"apple"},true, "NOTIMPL-OPERATOR-STRING-IN" ],
    [ {"var":"a.b.c"}, null, null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"a.b.c"}, {"a":null}, null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":"a.b.c"}, {"a":{"b":null}}, null, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":""}, 1, 1, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":null}, 1, 1, "NOTIMPL-DATA-CONTEXT" ],
    [ {"var":[]}, 1, 1, "NOTIMPL-DATA-CONTEXT" ],

    "Missing",
    [{"missing":[]}, null, [], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a"]}, null, ["a"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":"a"}, null, ["a"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":"a"}, {"a":"apple"}, [], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a"]}, {"a":"apple"}, [], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a","b"]}, {"a":"apple"}, ["b"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a","b"]}, {"b":"banana"}, ["a"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a","b"]}, {"a":"apple", "b":"banana"}, [], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a","b"]}, {}, ["a","b"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a","b"]}, null, ["a","b"], "NOTIMPL-DATA-CONTEXT"],

    [{"missing":["a.b"]}, null, ["a.b"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a.b"]}, {"a":"apple"}, ["a.b"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a.b"]}, {"a":{"c":"apple cake"}}, ["a.b"], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a.b"]}, {"a":{"b":"apple brownie"}}, [], "NOTIMPL-DATA-CONTEXT"],
    [{"missing":["a.b", "a.c"]}, {"a":{"b":"apple brownie"}}, ["a.c"], "NOTIMPL-DATA-CONTEXT"],


    "Missing some",
    [{"missing_some":[1, ["a", "b"]]}, {"a":"apple"}, [], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[1, ["a", "b"]]}, {"b":"banana"}, [], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[1, ["a", "b"]]}, {"a":"apple", "b":"banana"}, [], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[1, ["a", "b"]]}, {"c":"carrot"}, ["a", "b"], "NOTIMPL-DATA-CONTEXT-SOME"],

    [{"missing_some":[2, ["a", "b", "c"]]}, {"a":"apple", "b":"banana"}, [], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[2, ["a", "b", "c"]]}, {"a":"apple", "c":"carrot"}, [], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[2, ["a", "b", "c"]]}, {"a":"apple", "b":"banana", "c":"carrot"}, [], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[2, ["a", "b", "c"]]}, {"a":"apple", "d":"durian"}, ["b", "c"], "NOTIMPL-DATA-CONTEXT-SOME" ],
    [{"missing_some":[2, ["a", "b", "c"]]}, {"d":"durian", "e":"eggplant"}, ["a", "b", "c"], "NOTIMPL-DATA-CONTEXT-SOME" ],


    "Missing and If are friends, because empty arrays are falsey in JsonLogic",
    [{"if":[ {"missing":"a"}, "missed it", "found it" ]}, {"a":"apple"}, "found it", "NOTIMPL-DATA-CONTEXT"],
    [{"if":[ {"missing":"a"}, "missed it", "found it" ]}, {"b":"banana"}, "missed it", "NOTIMPL-DATA-CONTEXT"],

    "Missing, Merge, and If are friends. VIN is always required, APR is only required if financing is true.",
    [
        {"missing":{"merge":[ "vin", {"if": [{"var":"financing"}, ["apr"], [] ]} ]} },
        {"financing":true},
        ["vin","apr"],
        "NOTIMPL-DATA-CONTEXT"
    ],

    [
        {"missing":{"merge":[ "vin", {"if": [{"var":"financing"}, ["apr"], [] ]} ]} },
        {"financing":false},
        ["vin"],
        "NOTIMPL-DATA-CONTEXT"
    ],

    "Filter, map, all, none, and some",
    [
        {"filter":[{"var":"integers"}, true]},
        {"integers":[1,2,3]},
        [1,2,3],
        "NOTIMPL-OPERATOR-LIST-FILTER"
    ],
    [
        {"filter":[{"var":"integers"}, false]},
        {"integers":[1,2,3]},
        [],
        "NOTIMPL-OPERATOR-LIST-FILTER"
    ],
    [
        {"filter":[{"var":"integers"}, {">=":[{"var":""},2]}]},
        {"integers":[1,2,3]},
        [2,3],
        "NOTIMPL-OPERATOR-LIST-FILTER"
    ],
    [
        {"filter":[{"var":"integers"}, {"%":[{"var":""},2]}]},
        {"integers":[1,2,3]},
        [1,3],
        "NOTIMPL-OPERATOR-LIST-FILTER"
    ],

    [
        {"map":[{"var":"integers"}, {"*":[{"var":""},2]}]},
        {"integers":[1,2,3]},
        [2,4,6],
        "NOTIMPL-OPERATOR-LIST-MAP"
    ],
    [
        {"map":[{"var":"integers"}, {"*":[{"var":""},2]}]},
        null,
        [],
        "NOTIMPL-OPERATOR-LIST-MAP"
    ],
    [
        {"map":[{"var":"desserts"}, {"var":"qty"}]},
        {"desserts":[
            {"name":"apple","qty":1},
            {"name":"brownie","qty":2},
            {"name":"cupcake","qty":3}
        ]},
        [1,2,3],
        "NOTIMPL-OPERATOR-LIST-MAP"
    ],

    [
        {"reduce":[
            {"var":"integers"},
            {"+":[{"var":"current"}, {"var":"accumulator"}]},
            0
        ]},
        {"integers":[1,2,3,4]},
        10,
        "NOTIMPL-OPERATOR-LIST-REDUCE"
    ],
    [
        {"reduce":[
            {"var":"integers"},
            {"+":[{"var":"current"}, {"var":"accumulator"}]},
            {"var": "start_with"}
        ]},
        {"integers":[1,2,3,4], "start_with": 59},
        69,
        "NOTIMPL-OPERATOR-LIST-REDUCE"
    ],
    [
        {"reduce":[
            {"var":"integers"},
            {"+":[{"var":"current"}, {"var":"accumulator"}]},
            0
        ]},
        null,
        0,
        "NOTIMPL-OPERATOR-LIST-REDUCE"
    ],
    [
        {"reduce":[
            {"var":"integers"},
            {"*":[{"var":"current"}, {"var":"accumulator"}]},
            1
        ]},
        {"integers":[1,2,3,4]},
        24,
        "NOTIMPL-OPERATOR-LIST-REDUCE"
    ],
    [
        {"reduce":[
            {"var":"integers"},
            {"*":[{"var":"current"}, {"var":"accumulator"}]},
            0
        ]},
        {"integers":[1,2,3,4]},
        0,
        "NOTIMPL-OPERATOR-LIST-REDUCE"
    ],
    [
        {"reduce": [
            {"var":"desserts"},
            {"+":[ {"var":"accumulator"}, {"var":"current.qty"}]},
            0
        ]},
        {"desserts":[
            {"name":"apple","qty":1},
            {"name":"brownie","qty":2},
            {"name":"cupcake","qty":3}
        ]},
        6,
        "NOTIMPL-OPERATOR-LIST-REDUCE"
    ],


    [
        {"all":[{"var":"integers"}, {">=":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        true,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[{"var":"integers"}, {"==":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        false,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[{"var":"integers"}, {"<":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        false,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[{"var":"integers"}, {"<":[{"var":""}, 1]}]},
        {"integers":[]},
        false,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[ {"var":"items"}, {">=":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        true,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[ {"var":"items"}, {">":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        false,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[ {"var":"items"}, {"<":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        false,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],
    [
        {"all":[ {"var":"items"}, {">=":[{"var":"qty"}, 1]}]},
        {"items":[]},
        false,
        "NOTIMPL-OPERATOR-LIST-ALL"
    ],


    [
        {"none":[{"var":"integers"}, {">=":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        false,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[{"var":"integers"}, {"==":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        false,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[{"var":"integers"}, {"<":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        true,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[{"var":"integers"}, {"<":[{"var":""}, 1]}]},
        {"integers":[]},
        true,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[ {"var":"items"}, {">=":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        false,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[ {"var":"items"}, {">":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        false,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[ {"var":"items"}, {"<":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        true,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],
    [
        {"none":[ {"var":"items"}, {">=":[{"var":"qty"}, 1]}]},
        {"items":[]},
        true,
        "NOTIMPL-OPERATOR-LIST-NONE"
    ],

    [
        {"some":[{"var":"integers"}, {">=":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        true,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[{"var":"integers"}, {"==":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        true,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[{"var":"integers"}, {"<":[{"var":""}, 1]}]},
        {"integers":[1,2,3]},
        false,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[{"var":"integers"}, {"<":[{"var":""}, 1]}]},
        {"integers":[]},
        false,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[ {"var":"items"}, {">=":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        true,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[ {"var":"items"}, {">":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        true,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[ {"var":"items"}, {"<":[{"var":"qty"}, 1]}]},
        {"items":[{"qty":1,"sku":"apple"},{"qty":2,"sku":"banana"}]},
        false,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],
    [
        {"some":[ {"var":"items"}, {">=":[{"var":"qty"}, 1]}]},
        {"items":[]},
        false,
        "NOTIMPL-OPERATOR-LIST-SOME"
    ],

    "EOF"
]
