[
{
"cases": [
{
"expression": "foo.*.baz",
"is_deeply": 1,
"result": [
"val",
"val",
"val"
]
},
{
"expression": "foo.bar.*",
"is_deeply": 1,
"result": [
"val"
]
},
{
"expression": "foo.*.notbaz",
"is_deeply": 1,
"result": [
[
"a",
"b",
"c"
],
[
"a",
"b",
"c"
]
]
},
{
"expression": "foo.*.notbaz[0]",
"is_deeply": 1,
"result": [
"a",
"a"
]
},
{
"expression": "foo.*.notbaz[-1]",
"is_deeply": 1,
"result": [
"c",
"c"
]
}
],
"given": {
"foo": {
"bar": {
"baz": "val"
},
"other": {
"baz": "val"
},
"other2": {
"baz": "val"
},
"other3": {
"notbaz": [
"a",
"b",
"c"
]
},
"other4": {
"notbaz": [
"a",
"b",
"c"
]
},
"other5": {
"other": {
"a": 1,
"b": 1,
"c": 1
}
}
}
}
},
{
"cases": [
{
"expression": "foo.*",
"is_deeply": 1,
"result": [
{
"second-1": "val"
},
{
"second-1": "val"
},
{
"second-1": "val"
}
]
},
{
"expression": "foo.*.*",
"is_deeply": 1,
"result": [
[
"val"
],
[
"val"
],
[
"val"
]
]
},
{
"expression": "foo.*.*.*",
"is_deeply": 1,
"result": [
[],
[],
[]
]
},
{
"expression": "foo.*.*.*.*",
"is_deeply": 1,
"result": [
[],
[],
[]
]
}
],
"given": {
"foo": {
"first-1": {
"second-1": "val"
},
"first-2": {
"second-1": "val"
},
"first-3": {
"second-1": "val"
}
}
}
},
{
"cases": [
{
"expression": "*.bar",
"is_deeply": 1,
"result": [
"one",
"one"
]
}
],
"given": {
"foo": {
"bar": "one"
},
"nomatch": {
"notbar": "three"
},
"other": {
"bar": "one"
}
}
},
{
"cases": [
{
"expression": "*",
"is_deeply": 1,
"result": [
{
"sub1": {
"foo": "one"
}
},
{
"sub1": {
"foo": "one"
}
}
]
},
{
"expression": "*.sub1",
"is_deeply": 1,
"result": [
{
"foo": "one"
},
{
"foo": "one"
}
]
},
{
"expression": "*.*",
"is_deeply": 1,
"result": [
[
{
"foo": "one"
}
],
[
{
"foo": "one"
}
]
]
},
{
"expression": "*.*.foo[]",
"is_deeply": 1,
"result": [
"one",
"one"
]
},
{
"expression": "*.sub1.foo",
"is_deeply": 1,
"result": [
"one",
"one"
]
}
],
"given": {
"top1": {
"sub1": {
"foo": "one"
}
},
"top2": {
"sub1": {
"foo": "one"
}
}
}
},
{
"cases": [
{
"expression": "foo[*].bar",
"is_deeply": 1,
"result": [
"one",
"two",
"three"
]
},
{
"expression": "foo[*].notbar",
"is_deeply": 1,
"result": [
"four"
]
}
],
"given": {
"foo": [
{
"bar": "one"
},
{
"bar": "two"
},
{
"bar": "three"
},
{
"notbar": "four"
}
]
}
},
{
"cases": [
{
"expression": "[*]",
"is_deeply": 1,
"result": [
{
"bar": "one"
},
{
"bar": "two"
},
{
"bar": "three"
},
{
"notbar": "four"
}
]
},
{
"expression": "[*].bar",
"is_deeply": 1,
"result": [
"one",
"two",
"three"
]
},
{
"expression": "[*].notbar",
"is_deeply": 1,
"result": [
"four"
]
}
],
"given": [
{
"bar": "one"
},
{
"bar": "two"
},
{
"bar": "three"
},
{
"notbar": "four"
}
]
},
{
"cases": [
{
"expression": "foo.bar[*].baz",
"is_deeply": 1,
"result": [
[
"one",
"two",
"three"
],
[
"four",
"five",
"six"
],
[
"seven",
"eight",
"nine"
]
]
},
{
"expression": "foo.bar[*].baz[0]",
"is_deeply": 1,
"result": [
"one",
"four",
"seven"
]
},
{
"expression": "foo.bar[*].baz[1]",
"is_deeply": 1,
"result": [
"two",
"five",
"eight"
]
},
{
"expression": "foo.bar[*].baz[2]",
"is_deeply": 1,
"result": [
"three",
"six",
"nine"
]
},
{
"expression": "foo.bar[*].baz[3]",
"is_deeply": 1,
"result": []
}
],
"given": {
"foo": {
"bar": [
{
"baz": [
"one",
"two",
"three"
]
},
{
"baz": [
"four",
"five",
"six"
]
},
{
"baz": [
"seven",
"eight",
"nine"
]
}
]
}
}
},
{
"cases": [
{
"expression": "foo.bar[*]",
"is_deeply": 1,
"result": [
[
"one",
"two"
],
[
"three",
"four"
]
]
},
{
"expression": "foo.bar[0]",
"is_deeply": 1,
"result": [
"one",
"two"
]
},
{
"expression": "foo.bar[0][0]",
"result": "one"
},
{
"expression": "foo.bar[0][0][0]",
"result": null
},
{
"expression": "foo.bar[0][0][0][0]",
"result": null
},
{
"expression": "foo[0][0]",
"result": null
}
],
"given": {
"foo": {
"bar": [
[
"one",
"two"
],
[
"three",
"four"
]
]
}
}
},
{
"cases": [
{
"expression": "foo[*].bar[*].kind",
"is_deeply": 1,
"result": [
[
"basic",
"intermediate"
],
[
"advanced",
"expert"
]
]
},
{
"expression": "foo[*].bar[0].kind",
"is_deeply": 1,
"result": [
"basic",
"advanced"
]
}
],
"given": {
"foo": [
{
"bar": [
{
"kind": "basic"
},
{
"kind": "intermediate"
}
]
},
{
"bar": [
{
"kind": "advanced"
},
{
"kind": "expert"
}
]
},
{
"bar": "string"
}
]
}
},
{
"cases": [
{
"expression": "foo[*].bar.kind",
"is_deeply": 1,
"result": [
"basic",
"intermediate",
"advanced",
"expert"
]
}
],
"given": {
"foo": [
{
"bar": {
"kind": "basic"
}
},
{
"bar": {
"kind": "intermediate"
}
},
{
"bar": {
"kind": "advanced"
}
},
{
"bar": {
"kind": "expert"
}
},
{
"bar": "string"
}
]
}
},
{
"cases": [
{
"expression": "foo[*].bar[0]",
"is_deeply": 1,
"result": [
"one",
"three",
"five"
]
},
{
"expression": "foo[*].bar[1]",
"is_deeply": 1,
"result": [
"two",
"four"
]
},
{
"expression": "foo[*].bar[2]",
"is_deeply": 1,
"result": []
}
],
"given": {
"foo": [
{
"bar": [
"one",
"two"
]
},
{
"bar": [
"three",
"four"
]
},
{
"bar": [
"five"
]
}
]
}
},
{
"cases": [
{
"expression": "foo[*].bar[0]",
"is_deeply": 1,
"result": []
}
],
"given": {
"foo": [
{
"bar": []
},
{
"bar": []
},
{
"bar": []
}
]
}
},
{
"cases": [
{
"expression": "foo[*][0]",
"is_deeply": 1,
"result": [
"one",
"three",
"five"
]
},
{
"expression": "foo[*][1]",
"is_deeply": 1,
"result": [
"two",
"four"
]
}
],
"given": {
"foo": [
[
"one",
"two"
],
[
"three",
"four"
],
[
"five"
]
]
}
},
{
"cases": [
{
"expression": "foo[*][0]",
"is_deeply": 1,
"result": [
[
"one",
"two"
],
[
"five",
"six"
],
[
"nine"
]
]
},
{
"expression": "foo[*][1]",
"is_deeply": 1,
"result": [
[
"three",
"four"
],
[
"seven",
"eight"
],
[
"ten"
]
]
},
{
"expression": "foo[*][0][0]",
"is_deeply": 1,
"result": [
"one",
"five",
"nine"
]
},
{
"expression": "foo[*][1][0]",
"is_deeply": 1,
"result": [
"three",
"seven",
"ten"
]
},
{
"expression": "foo[*][0][1]",
"is_deeply": 1,
"result": [
"two",
"six"
]
},
{
"expression": "foo[*][1][1]",
"is_deeply": 1,
"result": [
"four",
"eight"
]
},
{
"expression": "foo[*][2]",
"is_deeply": 1,
"result": []
},
{
"expression": "foo[*][2][2]",
"is_deeply": 1,
"result": []
},
{
"expression": "bar[*]",
"result": null
},
{
"expression": "bar[*].baz[*]",
"result": null
}
],
"given": {
"foo": [
[
[
"one",
"two"
],
[
"three",
"four"
]
],
[
[
"five",
"six"
],
[
"seven",
"eight"
]
],
[
[
"nine"
],
[
"ten"
]
]
]
}
},
{
"cases": [
{
"expression": "string[*]",
"result": null
},
{
"expression": "hash[*]",
"result": null
},
{
"expression": "number[*]",
"result": null
},
{
"expression": "nullvalue[*]",
"result": null
},
{
"expression": "string[*].foo",
"result": null
},
{
"expression": "hash[*].foo",
"result": null
},
{
"expression": "number[*].foo",
"result": null
},
{
"expression": "nullvalue[*].foo",
"result": null
},
{
"expression": "nullvalue[*].foo[*].bar",
"result": null
}
],
"given": {
"hash": {
"bar": "baz",
"foo": "bar"
},
"nullvalue": null,
"number": 23,
"string": "string"
}
},
{
"cases": [
{
"expression": "string.*",
"result": null
},
{
"expression": "hash.*",
"is_deeply": 1,
"result": [
"val",
"val"
]
},
{
"expression": "number.*",
"result": null
},
{
"expression": "array.*",
"result": null
},
{
"expression": "nullvalue.*",
"result": null
}
],
"given": {
"array": [
1,
2,
3
],
"hash": {
"bar": "val",
"foo": "val"
},
"nullvalue": null,
"number": 23,
"string": "string"
}
},
{
"cases": [
{
"expression": "*[0]",
"is_deeply": 1,
"result": [
0,
0
]
}
],
"given": {
"a": [
0,
1,
2
],
"b": [
0,
1,
2
]
}
}
]