summaryrefslogtreecommitdiff
path: root/decode_scan_test.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-01-30 11:42:51 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-01-30 22:00:25 -0700
commitbc1bacc410ddfa444c5bf0e56f33a7da440658ae (patch)
tree53d982348637d4f7e1ffffe89a69105ec350df6e /decode_scan_test.go
parent659114fee7c39f06c408135169f2848a881dfe5e (diff)
decode: Inline noWsRuneTypeScanner into runeTypeScannerImpl
Diffstat (limited to 'decode_scan_test.go')
-rw-r--r--decode_scan_test.go113
1 files changed, 22 insertions, 91 deletions
diff --git a/decode_scan_test.go b/decode_scan_test.go
index 6a430ab..5bf5e2a 100644
--- a/decode_scan_test.go
+++ b/decode_scan_test.go
@@ -69,7 +69,6 @@ func TestRuneTypeScanner(t *testing.T) {
{'o', 1, internal.RuneTypeStringChar, nil},
{'"', 1, internal.RuneTypeStringEnd, nil},
{':', 1, internal.RuneTypeObjectColon, nil},
- {' ', 1, internal.RuneTypeSpace, nil},
{'1', 1, internal.RuneTypeNumberIntDig, nil},
{'2', 1, internal.RuneTypeNumberIntDig, nil},
{'.', 1, internal.RuneTypeNumberFracDot, nil},
@@ -86,7 +85,6 @@ func TestRuneTypeScanner(t *testing.T) {
{'o', 1, internal.RuneTypeStringChar, nil},
{'"', 1, internal.RuneTypeStringEnd, nil},
{':', 1, internal.RuneTypeObjectColon, nil},
- {' ', 1, internal.RuneTypeSpace, nil},
{'1', 1, internal.RuneTypeNumberIntDig, nil},
{0, -1, 0, nil},
{'1', 1, internal.RuneTypeNumberIntDig, nil},
@@ -105,7 +103,6 @@ func TestRuneTypeScanner(t *testing.T) {
{'o', 1, internal.RuneTypeStringChar, nil},
{'"', 1, internal.RuneTypeStringEnd, nil},
{':', 1, internal.RuneTypeObjectColon, nil},
- {' ', 1, internal.RuneTypeSpace, nil},
{'1', 1, internal.RuneTypeNumberIntDig, nil},
{0, -1, 0, nil},
{0, -1, 0, ErrInvalidUnreadRune},
@@ -125,7 +122,6 @@ func TestRuneTypeScanner(t *testing.T) {
{'o', 1, internal.RuneTypeStringChar, nil},
{'"', 1, internal.RuneTypeStringEnd, nil},
{':', 1, internal.RuneTypeObjectColon, nil},
- {' ', 1, internal.RuneTypeSpace, nil},
{'1', 1, internal.RuneTypeNumberIntDig, nil},
{'2', 1, internal.RuneTypeNumberIntDig, nil},
{'.', 1, internal.RuneTypeNumberFracDot, nil},
@@ -136,44 +132,7 @@ func TestRuneTypeScanner(t *testing.T) {
{0, 0, internal.RuneTypeEOF, nil},
{0, 0, internal.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", ']')}},
- }},
- "multi-value": {`1{}`, `}`, []ReadRuneTypeResult{
- {'1', 1, internal.RuneTypeNumberIntDig, nil},
- {'{', 1, internal.RuneTypeEOF, nil},
- {'{', 1, internal.RuneTypeEOF, nil},
- {'{', 1, internal.RuneTypeEOF, nil},
- }},
- "early-eof": {`{`, ``, []ReadRuneTypeResult{
- {'{', 1, internal.RuneTypeObjectBeg, nil},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 1, Err: io.ErrUnexpectedEOF}},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 1, Err: io.ErrUnexpectedEOF}},
- {0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 1, 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}},
- }},
- }
- testRuneTypeScanner(t, testcases, func(reader io.RuneScanner) runeTypeScanner {
- return &runeTypeScannerImpl{
- inner: reader,
- }
- })
-}
-
-func TestNoWSRuneTypeScanner(t *testing.T) {
- t.Parallel()
- testcases := map[string]runeTypeScannerTestcase{
- "basic": {`{"foo": 12.0}`, ``, []ReadRuneTypeResult{
+ "tail-ws": {`{"foo": 12.0} `, ``, []ReadRuneTypeResult{
{'{', 1, internal.RuneTypeObjectBeg, nil},
{'"', 1, internal.RuneTypeStringBeg, nil},
{'f', 1, internal.RuneTypeStringChar, nil},
@@ -189,39 +148,14 @@ func TestNoWSRuneTypeScanner(t *testing.T) {
{0, 0, internal.RuneTypeEOF, nil},
{0, 0, internal.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},
- {0, -1, 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},
- }},
- "tail": {`{"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},
+ "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", ']')}},
}},
"multi-value": {`1{}`, `}`, []ReadRuneTypeResult{
{'1', 1, internal.RuneTypeNumberIntDig, nil},
@@ -235,12 +169,15 @@ func TestNoWSRuneTypeScanner(t *testing.T) {
{0, 0, internal.RuneTypeError, &DecodeSyntaxError{Offset: 2, Err: io.ErrUnexpectedEOF}},
{0, 0, internal.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}},
+ }},
}
testRuneTypeScanner(t, testcases, func(reader io.RuneScanner) runeTypeScanner {
- return &noWSRuneTypeScanner{
- inner: &runeTypeScannerImpl{
- inner: reader,
- },
+ return &runeTypeScannerImpl{
+ inner: reader,
}
})
}
@@ -301,10 +238,8 @@ func TestElemRuneTypeScanner(t *testing.T) {
t.Parallel()
testRuneTypeScanner(t, toplevelTestcases, func(reader io.RuneScanner) runeTypeScanner {
return &elemRuneTypeScanner{
- inner: &noWSRuneTypeScanner{
- inner: &runeTypeScannerImpl{
- inner: reader,
- },
+ inner: &runeTypeScannerImpl{
+ inner: reader,
},
}
})
@@ -312,10 +247,8 @@ func TestElemRuneTypeScanner(t *testing.T) {
t.Run("child", func(t *testing.T) {
t.Parallel()
testRuneTypeScanner(t, childTestcases, func(reader io.RuneScanner) runeTypeScanner {
- inner := &noWSRuneTypeScanner{
- inner: &runeTypeScannerImpl{
- inner: reader,
- },
+ inner := &runeTypeScannerImpl{
+ inner: reader,
}
var res ReadRuneTypeResult
res.r, res.s, res.t, res.e = inner.ReadRuneType()
@@ -332,10 +265,8 @@ func TestElemRuneTypeScanner(t *testing.T) {
func TestElemRuneTypeScanner2(t *testing.T) {
t.Parallel()
- parent := &noWSRuneTypeScanner{
- inner: &runeTypeScannerImpl{
- inner: strings.NewReader(` { "foo" : 12.0 } `),
- },
+ parent := &runeTypeScannerImpl{
+ inner: strings.NewReader(` { "foo" : 12.0 } `),
}
exp := []ReadRuneTypeResult{
{'{', 1, internal.RuneTypeObjectBeg, nil},