Kaynağa Gözat

#135 verify 1e1 and 1.0e1 is handled same as std

Tao Wen 8 yıl önce
ebeveyn
işleme
e066e54964

+ 3 - 2
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())
 		})
 	}
 }

+ 9 - 0
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) {

+ 3 - 3
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)
-}
+}