...
1
16
17 package issue_test
18
19 import (
20 . `github.com/bytedance/sonic`
21 `testing`
22 `math`
23 `encoding/json`
24
25 `github.com/bytedance/sonic/decoder`
26 `github.com/stretchr/testify/require`
27 )
28
29
30 func TestNegZeroInIEEE754(t *testing.T) {
31 var sonicobj, stdobj float64
32 sonicerr := Unmarshal([]byte("-0.0"), &sonicobj)
33 stderr := json.Unmarshal([]byte("-0.0"), &stdobj)
34 if sonicerr != nil && stderr == nil {
35 println(sonicerr.(decoder.SyntaxError).Description())
36 require.NoError(t, sonicerr)
37 }
38 require.Equal(t, math.Float64bits(sonicobj), math.Float64bits(stdobj))
39
40 sonicout, sonicerr2 := Marshal(&stdobj)
41 stdout, stderr2 := json.Marshal(&stdobj)
42 if sonicerr2 != nil && stderr2 == nil {
43 println(sonicerr2)
44 require.NoError(t, sonicerr2)
45 }
46 require.Equal(t, sonicout, stdout)
47 }
View as plain text