1
0
mirror of https://github.com/json-iterator/go.git synced 2024-11-27 08:30:57 +02:00

Add test for iterator UseNumber

This commit is contained in:
carlcarl 2017-07-11 23:39:09 +08:00
parent b91b7ac682
commit 7b1fd129cf

View File

@ -2,7 +2,11 @@ package jsoniter
import ( import (
"bytes" "bytes"
"fmt"
"strconv"
"testing" "testing"
"github.com/stretchr/testify/require"
) )
func Test_bad_case(t *testing.T) { func Test_bad_case(t *testing.T) {
@ -33,3 +37,30 @@ func Test_bad_case(t *testing.T) {
t.Fatal(count) t.Fatal(count)
} }
} }
func Test_iterator_use_number(t *testing.T) {
// Test UseNumber with iterator Read()
inputs := []string{`2147483647`, `-2147483648`}
for _, input := range inputs {
t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
should := require.New(t)
iter := ParseString(Config{UseNumber: true}.Froze(), input)
expected, err := strconv.ParseInt(input, 10, 32)
should.Nil(err)
should.Equal(int(expected), iter.Read())
})
}
}
func Test_iterator_without_number(t *testing.T) {
inputs := []string{`2147483647`, `-2147483648`}
for _, input := range inputs {
t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
should := require.New(t)
iter := ParseString(ConfigDefault, input)
expected, err := strconv.ParseInt(input, 10, 32)
should.Nil(err)
should.Equal(float64(expected), iter.Read())
})
}
}