summaryrefslogtreecommitdiff
path: root/decode_scan_test.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-02-07 12:18:29 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-02-07 14:05:26 -0700
commit2b9473f5e8816eeea76b2fdada184532be00d3a2 (patch)
tree387757b00f02521d1b3824a0e92f7778dbd32440 /decode_scan_test.go
parenteab38672b2467810592b61fe5b0067086d3cbd2c (diff)
internal: Split in to sub-packages
Diffstat (limited to 'decode_scan_test.go')
-rw-r--r--decode_scan_test.go240
1 files changed, 120 insertions, 120 deletions
diff --git a/decode_scan_test.go b/decode_scan_test.go
index d0725e5..1d61157 100644
--- a/decode_scan_test.go
+++ b/decode_scan_test.go
@@ -12,13 +12,13 @@ import (
"github.com/stretchr/testify/assert"
- "git.lukeshu.com/go/lowmemjson/internal"
+ "git.lukeshu.com/go/lowmemjson/internal/jsonparse"
)
type ReadRuneTypeResult struct {
r rune
s int
- t internal.RuneType
+ t jsonparse.RuneType
e error
}
@@ -54,149 +54,149 @@ func TestRuneTypeScanner(t *testing.T) {
t.Parallel()
testcases := map[string]runeTypeScannerTestcase{
"basic": {`{"foo": 12.0}`, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {'"', 1, internal.RuneTypeStringBeg, nil},
- {'f', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'"', 1, internal.RuneTypeStringEnd, nil},
- {':', 1, internal.RuneTypeObjectColon, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'2', 1, internal.RuneTypeNumberIntDig, nil},
- {'.', 1, internal.RuneTypeNumberFracDot, nil},
- {'0', 1, internal.RuneTypeNumberFracDig, nil},
- {'}', 1, internal.RuneTypeObjectEnd, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {'"', 1, jsonparse.RuneTypeStringBeg, nil},
+ {'f', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'"', 1, jsonparse.RuneTypeStringEnd, nil},
+ {':', 1, jsonparse.RuneTypeObjectColon, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'2', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'.', 1, jsonparse.RuneTypeNumberFracDot, nil},
+ {'0', 1, jsonparse.RuneTypeNumberFracDig, nil},
+ {'}', 1, jsonparse.RuneTypeObjectEnd, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
"unread": {`{"foo": 12.0}`, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {'"', 1, internal.RuneTypeStringBeg, nil},
- {'f', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'"', 1, internal.RuneTypeStringEnd, nil},
- {':', 1, internal.RuneTypeObjectColon, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {'"', 1, jsonparse.RuneTypeStringBeg, nil},
+ {'f', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'"', 1, jsonparse.RuneTypeStringEnd, nil},
+ {':', 1, jsonparse.RuneTypeObjectColon, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
{0, unreadRune, 0, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'2', 1, internal.RuneTypeNumberIntDig, nil},
- {'.', 1, internal.RuneTypeNumberFracDot, nil},
- {'0', 1, internal.RuneTypeNumberFracDig, nil},
- {'}', 1, internal.RuneTypeObjectEnd, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'2', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'.', 1, jsonparse.RuneTypeNumberFracDot, nil},
+ {'0', 1, jsonparse.RuneTypeNumberFracDig, nil},
+ {'}', 1, jsonparse.RuneTypeObjectEnd, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
"unread2": {`{"foo": 12.0}`, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {'"', 1, internal.RuneTypeStringBeg, nil},
- {'f', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'"', 1, internal.RuneTypeStringEnd, nil},
- {':', 1, internal.RuneTypeObjectColon, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {'"', 1, jsonparse.RuneTypeStringBeg, nil},
+ {'f', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'"', 1, jsonparse.RuneTypeStringEnd, nil},
+ {':', 1, jsonparse.RuneTypeObjectColon, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
{0, unreadRune, 0, nil},
{0, unreadRune, 0, ErrInvalidUnreadRune},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'2', 1, internal.RuneTypeNumberIntDig, nil},
- {'.', 1, internal.RuneTypeNumberFracDot, nil},
- {'0', 1, internal.RuneTypeNumberFracDig, nil},
- {'}', 1, internal.RuneTypeObjectEnd, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'2', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'.', 1, jsonparse.RuneTypeNumberFracDot, nil},
+ {'0', 1, jsonparse.RuneTypeNumberFracDig, nil},
+ {'}', 1, jsonparse.RuneTypeObjectEnd, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
"unread-eof": {`{"foo": 12.0}`, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {'"', 1, internal.RuneTypeStringBeg, nil},
- {'f', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'"', 1, internal.RuneTypeStringEnd, nil},
- {':', 1, internal.RuneTypeObjectColon, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'2', 1, internal.RuneTypeNumberIntDig, nil},
- {'.', 1, internal.RuneTypeNumberFracDot, nil},
- {'0', 1, internal.RuneTypeNumberFracDig, nil},
- {'}', 1, internal.RuneTypeObjectEnd, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {'"', 1, jsonparse.RuneTypeStringBeg, nil},
+ {'f', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'"', 1, jsonparse.RuneTypeStringEnd, nil},
+ {':', 1, jsonparse.RuneTypeObjectColon, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'2', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'.', 1, jsonparse.RuneTypeNumberFracDot, nil},
+ {'0', 1, jsonparse.RuneTypeNumberFracDig, nil},
+ {'}', 1, jsonparse.RuneTypeObjectEnd, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
{0, unreadRune, 0, ErrInvalidUnreadRune},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
"tail-ws": {`{"foo": 12.0} `, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {'"', 1, internal.RuneTypeStringBeg, nil},
- {'f', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'"', 1, internal.RuneTypeStringEnd, nil},
- {':', 1, internal.RuneTypeObjectColon, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'2', 1, internal.RuneTypeNumberIntDig, nil},
- {'.', 1, internal.RuneTypeNumberFracDot, nil},
- {'0', 1, internal.RuneTypeNumberFracDig, nil},
- {'}', 1, internal.RuneTypeObjectEnd, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {'"', 1, jsonparse.RuneTypeStringBeg, nil},
+ {'f', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'"', 1, jsonparse.RuneTypeStringEnd, nil},
+ {':', 1, jsonparse.RuneTypeObjectColon, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'2', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'.', 1, jsonparse.RuneTypeNumberFracDot, nil},
+ {'0', 1, jsonparse.RuneTypeNumberFracDig, nil},
+ {'}', 1, jsonparse.RuneTypeObjectEnd, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
"syntax-error": {`[[0,]`, ``, []ReadRuneTypeResult{
- {'[', 1, internal.RuneTypeArrayBeg, nil},
- {'[', 1, internal.RuneTypeArrayBeg, nil},
- {'0', 1, internal.RuneTypeNumberIntZero, nil},
- {',', 1, internal.RuneTypeArrayComma, nil},
- {']', 1, internal.RuneTypeError, &DecodeSyntaxError{Offset: 4, Err: fmt.Errorf("invalid character %q looking for beginning of value", ']')}},
- {']', 1, internal.RuneTypeError, &DecodeSyntaxError{Offset: 4, Err: fmt.Errorf("invalid character %q looking for beginning of value", ']')}},
- {']', 1, internal.RuneTypeError, &DecodeSyntaxError{Offset: 4, Err: fmt.Errorf("invalid character %q looking for beginning of value", ']')}},
+ {'[', 1, jsonparse.RuneTypeArrayBeg, nil},
+ {'[', 1, jsonparse.RuneTypeArrayBeg, nil},
+ {'0', 1, jsonparse.RuneTypeNumberIntZero, nil},
+ {',', 1, jsonparse.RuneTypeArrayComma, nil},
+ {']', 1, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 4, Err: fmt.Errorf("invalid character %q looking for beginning of value", ']')}},
+ {']', 1, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 4, Err: fmt.Errorf("invalid character %q looking for beginning of value", ']')}},
+ {']', 1, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 4, Err: fmt.Errorf("invalid character %q looking for beginning of value", ']')}},
}},
"multi-value": {`1{}`, `}`, []ReadRuneTypeResult{
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'{', 1, internal.RuneTypeEOF, nil},
- {'{', 1, internal.RuneTypeEOF, nil},
- {'{', 1, internal.RuneTypeEOF, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'{', 1, jsonparse.RuneTypeEOF, nil},
+ {'{', 1, jsonparse.RuneTypeEOF, nil},
+ {'{', 1, jsonparse.RuneTypeEOF, nil},
}},
"early-eof": {` {`, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {0, 0, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
+ {0, 0, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
+ {0, 0, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
}},
"empty": {``, ``, []ReadRuneTypeResult{
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 0, Err: io.EOF}},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 0, Err: io.EOF}},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 0, Err: io.EOF}},
+ {0, 0, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 0, Err: io.EOF}},
+ {0, 0, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 0, Err: io.EOF}},
+ {0, 0, jsonparse.RuneTypeError, &DecodeSyntaxError{Offset: 0, Err: io.EOF}},
}},
"basic2": {`1`, ``, []ReadRuneTypeResult{
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
"fragment": {`1,`, ``, []ReadRuneTypeResult{
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {',', 1, internal.RuneTypeEOF, nil},
- {',', 1, internal.RuneTypeEOF, nil},
- {',', 1, internal.RuneTypeEOF, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {',', 1, jsonparse.RuneTypeEOF, nil},
+ {',', 1, jsonparse.RuneTypeEOF, nil},
+ {',', 1, jsonparse.RuneTypeEOF, nil},
}},
"elem": {` { "foo" : 12.0 } `, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {'"', 1, internal.RuneTypeStringBeg, nil},
- {'f', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'o', 1, internal.RuneTypeStringChar, nil},
- {'"', 1, internal.RuneTypeStringEnd, nil},
- {':', 1, internal.RuneTypeObjectColon, nil},
+ {'{', 1, jsonparse.RuneTypeObjectBeg, nil},
+ {'"', 1, jsonparse.RuneTypeStringBeg, nil},
+ {'f', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'o', 1, jsonparse.RuneTypeStringChar, nil},
+ {'"', 1, jsonparse.RuneTypeStringEnd, nil},
+ {':', 1, jsonparse.RuneTypeObjectColon, nil},
{0, pushReadBarrier, 0, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'2', 1, internal.RuneTypeNumberIntDig, nil},
- {'.', 1, internal.RuneTypeNumberFracDot, nil},
- {'0', 1, internal.RuneTypeNumberFracDig, nil},
- {'}', 1, internal.RuneTypeEOF, nil},
- {'}', 1, internal.RuneTypeEOF, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'2', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {'.', 1, jsonparse.RuneTypeNumberFracDot, nil},
+ {'0', 1, jsonparse.RuneTypeNumberFracDig, nil},
+ {'}', 1, jsonparse.RuneTypeEOF, nil},
+ {'}', 1, jsonparse.RuneTypeEOF, nil},
{0, popReadBarrier, 0, nil},
- {'}', 1, internal.RuneTypeObjectEnd, nil},
- {0, 0, internal.RuneTypeEOF, nil},
- {0, 0, internal.RuneTypeEOF, nil},
+ {'}', 1, jsonparse.RuneTypeObjectEnd, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
+ {0, 0, jsonparse.RuneTypeEOF, nil},
}},
}
func() {
@@ -214,9 +214,9 @@ func TestRuneTypeScanner(t *testing.T) {
}
tc.Input = `[1,` + tc.Input
tc.Exp = append([]ReadRuneTypeResult{
- {'[', 1, internal.RuneTypeArrayBeg, nil},
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {',', 1, internal.RuneTypeArrayComma, nil},
+ {'[', 1, jsonparse.RuneTypeArrayBeg, nil},
+ {'1', 1, jsonparse.RuneTypeNumberIntDig, nil},
+ {',', 1, jsonparse.RuneTypeArrayComma, nil},
{0, pushReadBarrier, 0, nil},
}, tc.Exp...)
for i := 2; i < len(tc.Exp); i++ {