fuzzy_decoder_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package extra
  2. import (
  3. "testing"
  4. "github.com/json-iterator/go"
  5. "github.com/json-iterator/go/require"
  6. )
  7. func init() {
  8. RegisterFuzzyDecoders()
  9. }
  10. func Test_string_to_string(t *testing.T) {
  11. should := require.New(t)
  12. var val string
  13. should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
  14. should.Equal("100", val)
  15. }
  16. func Test_int_to_string(t *testing.T) {
  17. should := require.New(t)
  18. var val string
  19. should.Nil(jsoniter.UnmarshalFromString(`100`, &val))
  20. should.Equal("100", val)
  21. }
  22. func Test_float_to_string(t *testing.T) {
  23. should := require.New(t)
  24. var val string
  25. should.Nil(jsoniter.UnmarshalFromString(`12.0`, &val))
  26. should.Equal("12.0", val)
  27. }
  28. func Test_string_to_int(t *testing.T) {
  29. should := require.New(t)
  30. var val int
  31. should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
  32. should.Equal(100, val)
  33. }
  34. func Test_int_to_int(t *testing.T) {
  35. should := require.New(t)
  36. var val int
  37. should.Nil(jsoniter.UnmarshalFromString(`100`, &val))
  38. should.Equal(100, val)
  39. }
  40. func Test_float_to_int(t *testing.T) {
  41. should := require.New(t)
  42. var val int
  43. should.Nil(jsoniter.UnmarshalFromString(`1.23`, &val))
  44. should.Equal(1, val)
  45. }
  46. func Test_large_float_to_int(t *testing.T) {
  47. should := require.New(t)
  48. var val int
  49. should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
  50. }
  51. func Test_string_to_float32(t *testing.T) {
  52. should := require.New(t)
  53. var val float32
  54. should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
  55. should.Equal(float32(100), val)
  56. }
  57. func Test_float_to_float32(t *testing.T) {
  58. should := require.New(t)
  59. var val float32
  60. should.Nil(jsoniter.UnmarshalFromString(`1.23`, &val))
  61. should.Equal(float32(1.23), val)
  62. }
  63. func Test_string_to_float64(t *testing.T) {
  64. should := require.New(t)
  65. var val float64
  66. should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
  67. should.Equal(float64(100), val)
  68. }
  69. func Test_float_to_float64(t *testing.T) {
  70. should := require.New(t)
  71. var val float64
  72. should.Nil(jsoniter.UnmarshalFromString(`1.23`, &val))
  73. should.Equal(float64(1.23), val)
  74. }