[
{
"cases": [
{
"expression": "foo.bar[0]",
"result": "zero"
},
{
"expression": "foo.bar[1]",
"result": "one"
},
{
"expression": "foo.bar[2]",
"result": "two"
},
{
"expression": "foo.bar[3]",
"result": null
},
{
"expression": "foo.bar[-1]",
"result": "two"
},
{
"expression": "foo.bar[-2]",
"result": "one"
},
{
"expression": "foo.bar[-3]",
"result": "zero"
},
{
"expression": "foo.bar[-4]",
"result": null
}
],
"given": {
"foo": {
"bar": [
"zero",
"one",
"two"
]
}
}
},
{
"cases": [
{
"expression": "foo.bar",
"result": null
},
{
"expression": "foo[0].bar",
"result": "one"
},
{
"expression": "foo[1].bar",
"result": "two"
},
{
"expression": "foo[2].bar",
"result": "three"
},
{
"expression": "foo[3].notbar",
"result": "four"
},
{
"expression": "foo[3].bar",
"result": null
},
{
"expression": "foo[0]",
"is_deeply": 1,
"result": {
"bar": "one"
}
},
{
"expression": "foo[1]",
"is_deeply": 1,
"result": {
"bar": "two"
}
},
{
"expression": "foo[2]",
"is_deeply": 1,
"result": {
"bar": "three"
}
},
{
"expression": "foo[3]",
"is_deeply": 1,
"result": {
"notbar": "four"
}
},
{
"expression": "foo[4]",
"result": null
}
],
"given": {
"foo": [
{
"bar": "one"
},
{
"bar": "two"
},
{
"bar": "three"
},
{
"notbar": "four"
}
]
}
},
{
"cases": [
{
"expression": "[0]",
"result": "one"
},
{
"expression": "[1]",
"result": "two"
},
{
"expression": "[2]",
"result": "three"
},
{
"expression": "[-1]",
"result": "three"
},
{
"expression": "[-2]",
"result": "two"
},
{
"expression": "[-3]",
"result": "one"
}
],
"given": [
"one",
"two",
"three"
]
},
{
"cases": [
{
"expression": "reservations[].instances[].foo",
"is_deeply": 1,
"result": [
1,
2
]
},
{
"expression": "reservations[].instances[].bar",
"is_deeply": 1,
"result": []
},
{
"expression": "reservations[].notinstances[].foo",
"is_deeply": 1,
"result": []
},
{
"expression": "reservations[].notinstances[].foo",
"is_deeply": 1,
"result": []
}
],
"given": {
"reservations": [
{
"instances": [
{
"foo": 1
},
{
"foo": 2
}
]
}
]
}
},
{
"cases": [
{
"expression": "reservations[].instances[].foo[].bar",
"is_deeply": 1,
"result": [
1,
2,
4,
5,
6,
8
]
},
{
"expression": "reservations[].instances[].foo[].baz",
"is_deeply": 1,
"result": []
},
{
"expression": "reservations[].instances[].notfoo[].bar",
"is_deeply": 1,
"result": [
20,
21,
22,
23,
24,
25
]
},
{
"expression": "reservations[].instances[].notfoo[].notbar",
"is_deeply": 1,
"result": [
[
7
],
[
7
]
]
},
{
"expression": "reservations[].notinstances[].foo",
"is_deeply": 1,
"result": []
},
{
"expression": "reservations[].instances[].foo[].notbar",
"is_deeply": 1,
"result": [
3,
[
7
]
]
},
{
"expression": "reservations[].instances[].bar[].baz",
"is_deeply": 1,
"result": [
[
1
],
[
2
],
[
3
],
[
4
]
]
},
{
"expression": "reservations[].instances[].baz[].baz",
"is_deeply": 1,
"result": [
[
1,
2
],
[],
[],
[
3,
4
]
]
},
{
"expression": "reservations[].instances[].qux[].baz",
"is_deeply": 1,
"result": [
[],
[
1,
2,
3
],
[
4
],
[],
[],
[
1,
2,
3
],
[
4
],
[]
]
},
{
"expression": "reservations[].instances[].qux[].baz[]",
"is_deeply": 1,
"result": [
1,
2,
3,
4,
1,
2,
3,
4
]
}
],
"given": {
"reservations": [
{
"instances": [
{
"foo": [
{
"bar": 1
},
{
"bar": 2
},
{
"notbar": 3
},
{
"bar": 4
}
]
},
{
"foo": [
{
"bar": 5
},
{
"bar": 6
},
{
"notbar": [
7
]
},
{
"bar": 8
}
]
},
{
"foo": "bar"
},
{
"notfoo": [
{
"bar": 20
},
{
"bar": 21
},
{
"notbar": [
7
]
},
{
"bar": 22
}
]
},
{
"bar": [
{
"baz": [
1
]
},
{
"baz": [
2
]
},
{
"baz": [
3
]
},
{
"baz": [
4
]
}
]
},
{
"baz": [
{
"baz": [
1,
2
]
},
{
"baz": []
},
{
"baz": []
},
{
"baz": [
3,
4
]
}
]
},
{
"qux": [
{
"baz": []
},
{
"baz": [
1,
2,
3
]
},
{
"baz": [
4
]
},
{
"baz": []
}
]
}
],
"otherkey": {
"foo": [
{
"bar": 1
},
{
"bar": 2
},
{
"notbar": 3
},
{
"bar": 4
}
]
}
},
{
"instances": [
{
"a": [
{
"bar": 1
},
{
"bar": 2
},
{
"notbar": 3
},
{
"bar": 4
}
]
},
{
"b": [
{
"bar": 5
},
{
"bar": 6
},
{
"notbar": [
7
]
},
{
"bar": 8
}
]
},
{
"c": "bar"
},
{
"notfoo": [
{
"bar": 23
},
{
"bar": 24
},
{
"notbar": [
7
]
},
{
"bar": 25
}
]
},
{
"qux": [
{
"baz": []
},
{
"baz": [
1,
2,
3
]
},
{
"baz": [
4
]
},
{
"baz": []
}
]
}
],
"otherkey": {
"foo": [
{
"bar": 1
},
{
"bar": 2
},
{
"notbar": 3
},
{
"bar": 4
}
]
}
}
]
}
},
{
"cases": [
{
"expression": "foo[]",
"is_deeply": 1,
"result": [
[
"one",
"two"
],
[
"three",
"four"
],
[
"five",
"six"
],
[
"seven",
"eight"
],
[
"nine"
],
[
"ten"
]
]
},
{
"expression": "foo[][0]",
"is_deeply": 1,
"result": [
"one",
"three",
"five",
"seven",
"nine",
"ten"
]
},
{
"expression": "foo[][1]",
"is_deeply": 1,
"result": [
"two",
"four",
"six",
"eight"
]
},
{
"expression": "foo[][0][0]",
"is_deeply": 1,
"result": []
},
{
"expression": "foo[][2][2]",
"is_deeply": 1,
"result": []
},
{
"expression": "foo[][0][0][100]",
"is_deeply": 1,
"result": []
}
],
"given": {
"foo": [
[
[
"one",
"two"
],
[
"three",
"four"
]
],
[
[
"five",
"six"
],
[
"seven",
"eight"
]
],
[
[
"nine"
],
[
"ten"
]
]
]
}
},
{
"cases": [
{
"expression": "foo",
"is_deeply": 1,
"result": [
{
"bar": [
{
"baz": 1,
"qux": 2
},
{
"baz": 3,
"qux": 4
}
]
},
{
"bar": [
{
"baz": 5,
"qux": 6
},
{
"baz": 7,
"qux": 8
}
]
}
]
},
{
"expression": "foo[]",
"is_deeply": 1,
"result": [
{
"bar": [
{
"baz": 1,
"qux": 2
},
{
"baz": 3,
"qux": 4
}
]
},
{
"bar": [
{
"baz": 5,
"qux": 6
},
{
"baz": 7,
"qux": 8
}
]
}
]
},
{
"expression": "foo[].bar",
"is_deeply": 1,
"result": [
[
{
"baz": 1,
"qux": 2
},
{
"baz": 3,
"qux": 4
}
],
[
{
"baz": 5,
"qux": 6
},
{
"baz": 7,
"qux": 8
}
]
]
},
{
"expression": "foo[].bar[]",
"is_deeply": 1,
"result": [
{
"baz": 1,
"qux": 2
},
{
"baz": 3,
"qux": 4
},
{
"baz": 5,
"qux": 6
},
{
"baz": 7,
"qux": 8
}
]
},
{
"expression": "foo[].bar[].baz",
"is_deeply": 1,
"result": [
1,
3,
5,
7
]
}
],
"given": {
"foo": [
{
"bar": [
{
"baz": 1,
"qux": 2
},
{
"baz": 3,
"qux": 4
}
]
},
{
"bar": [
{
"baz": 5,
"qux": 6
},
{
"baz": 7,
"qux": 8
}
]
}
]
}
},
{
"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"
}
}
]