[
    {
        "cases": [
            {
                "expression": "foo.*.baz | [0]",
                "result": "subkey"
            },
            {
                "expression": "foo.*.baz | [1]",
                "result": "subkey"
            },
            {
                "expression": "foo.*.baz | [2]",
                "result": "subkey"
            },
            {
                "expression": "foo.bar.* | [0]",
                "result": "subkey"
            },
            {
                "expression": "foo.*.notbaz | [*]",
                "is_deeply": 1,
                "result": [
                    [
                        "a",
                        "b",
                        "c"
                    ],
                    [
                        "a",
                        "b",
                        "c"
                    ]
                ]
            },
            {
                "expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz",
                "is_deeply": 1,
                "result": [
                    "subkey",
                    "subkey"
                ]
            }
        ],
        "given": {
            "foo": {
                "bar": {
                    "baz": "subkey"
                },
                "other": {
                    "baz": "subkey"
                },
                "other2": {
                    "baz": "subkey"
                },
                "other3": {
                    "is_deeply": 1,
                    "notbaz": [
                        "a",
                        "b",
                        "c"
                    ]
                },
                "other4": {
                    "is_deeply": 1,
                    "notbaz": [
                        "a",
                        "b",
                        "c"
                    ]
                }
            }
        }
    },
    {
        "cases": [
            {
                "expression": "foo | bar",
                "is_deeply": 1,
                "result": {
                    "baz": "one"
                }
            },
            {
                "expression": "foo | bar | baz",
                "result": "one"
            },
            {
                "expression": "foo|bar| baz",
                "result": "one"
            },
            {
                "expression": "not_there | [0]",
                "result": null
            },
            {
                "expression": "not_there | [0]",
                "result": null
            },
            {
                "expression": "[foo.bar, foo.other] | [0]",
                "is_deeply": 1,
                "result": {
                    "baz": "one"
                }
            },
            {
                "expression": "{\"a\": foo.bar, \"b\": foo.other} | a",
                "is_deeply": 1,
                "result": {
                    "baz": "one"
                }
            },
            {
                "expression": "{\"a\": foo.bar, \"b\": foo.other} | b",
                "is_deeply": 1,
                "result": {
                    "baz": "two"
                }
            },
            {
                "expression": "foo.bam || foo.bar | baz",
                "result": "one"
            },
            {
                "expression": "foo | not_there || bar",
                "is_deeply": 1,
                "result": {
                    "baz": "one"
                }
            }
        ],
        "given": {
            "foo": {
                "bar": {
                    "baz": "one"
                },
                "other": {
                    "baz": "two"
                },
                "other2": {
                    "baz": "three"
                },
                "other3": {
                    "notbaz": [
                        "a",
                        "b",
                        "c"
                    ]
                },
                "other4": {
                    "notbaz": [
                        "d",
                        "e",
                        "f"
                    ]
                }
            }
        }
    },
    {
        "cases": [
            {
                "expression": "foo[*].bar[*] | [0][0]",
                "is_deeply": 1,
                "result": {
                    "baz": "one"
                }
            }
        ],
        "given": {
            "foo": [
                {
                    "bar": [
                        {
                            "baz": "one"
                        },
                        {
                            "baz": "two"
                        }
                    ]
                },
                {
                    "bar": [
                        {
                            "baz": "three"
                        },
                        {
                            "baz": "four"
                        }
                    ]
                }
            ]
        }
    }
]