diff --git a/jsoniter_float_test.go b/jsoniter_float_test.go index 2f2c2d9..d90ff2b 100644 --- a/jsoniter_float_test.go +++ b/jsoniter_float_test.go @@ -60,9 +60,10 @@ func Test_read_float(t *testing.T) { t.Run(fmt.Sprintf("%v", input), func(t *testing.T) { should := require.New(t) iter := Parse(ConfigDefault, bytes.NewBufferString(input+","), 2) - expected, err := strconv.ParseFloat(input, 64) + val := float64(0) + err := json.Unmarshal([]byte(input), &val) should.Nil(err) - should.Equal(expected, iter.ReadFloat64()) + should.Equal(val, iter.ReadFloat64()) }) } } diff --git a/jsoniter_interface_test.go b/jsoniter_interface_test.go index 44104b1..c037049 100644 --- a/jsoniter_interface_test.go +++ b/jsoniter_interface_test.go @@ -81,6 +81,15 @@ func Test_read_interface(t *testing.T) { err := UnmarshalFromString(`"hello"`, &val) should.Nil(err) should.Equal("hello", val) + err = UnmarshalFromString(`1e1`, &val) + should.Nil(err) + should.Equal(float64(10), val) + err = UnmarshalFromString(`1.0e1`, &val) + should.Nil(err) + should.Equal(float64(10), val) + err = json.Unmarshal([]byte(`1.0e1`), &val) + should.Nil(err) + should.Equal(float64(10), val) } func Test_read_custom_interface(t *testing.T) { diff --git a/jsoniter_invalid_test.go b/jsoniter_invalid_test.go index a2fd191..a26d7e2 100644 --- a/jsoniter_invalid_test.go +++ b/jsoniter_invalid_test.go @@ -1,10 +1,10 @@ package jsoniter import ( - "github.com/stretchr/testify/require" - "testing" "encoding/json" + "github.com/stretchr/testify/require" "io" + "testing" ) func Test_missing_object_end(t *testing.T) { @@ -110,4 +110,4 @@ func Test_empty_as_number(t *testing.T) { iter.ReadFloat32() should.NotEqual(io.EOF, iter.Error) should.NotNil(iter.Error) -} \ No newline at end of file +}