-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathslice_test.go
More file actions
39 lines (35 loc) · 803 Bytes
/
Copy pathslice_test.go
File metadata and controls
39 lines (35 loc) · 803 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package jpath_test
import (
"testing"
"github.com/kode4food/jpath"
)
func TestPathSliceBounds(t *testing.T) {
reg := jpath.NewRegistry()
doc := []any{
float64(0),
float64(1),
float64(2),
float64(3),
float64(4),
}
assertPathQuery(t, reg, "$[-9:2]", doc, []any{float64(0), float64(1)})
assertPathQuery(t, reg, "$[9:]", doc, []any{})
assertPathQuery(
t, reg, "$[2:9]", doc,
[]any{float64(2), float64(3), float64(4)},
)
assertPathQuery(t, reg, "$[:-9]", doc, []any{})
assertPathQuery(t, reg, "$[-2::-1]", doc, []any{
float64(3),
float64(2),
float64(1),
float64(0),
})
assertPathQuery(t, reg, "$[-9::-1]", doc, []any{})
assertPathQuery(t, reg, "$[:9:-1]", doc, []any{})
assertPathQuery(t, reg, "$[9:1:-1]", doc, []any{
float64(4),
float64(3),
float64(2),
})
}