@@ -113,34 +113,27 @@ func TestXLangSerializer(t *testing.T) {
113113 require .Nil (t , fory_ .Serialize (buffer , set , nil ))
114114
115115 // test primitive arrays
116- require .Nil (t , fory_ .Serialize (buffer , []bool {true , false }, nil ))
117- require .Nil (t , fory_ .Serialize (buffer , []int16 {1 , fory .MaxInt16 }, nil ))
118- require .Nil (t , fory_ .Serialize (buffer , []int32 {1 , fory .MaxInt32 }, nil ))
119- require .Nil (t , fory_ .Serialize (buffer , []int64 {1 , fory .MaxInt64 }, nil ))
120- require .Nil (t , fory_ .Serialize (buffer , []float32 {1.0 , 2.0 }, nil ))
121- require .Nil (t , fory_ .Serialize (buffer , []float64 {1.0 , 2.0 }, nil ))
116+ require .Nil (t , fory_ .Serialize (buffer , [2 ]bool {true , false }, nil ))
117+ require .Nil (t , fory_ .Serialize (buffer , [2 ]int16 {1 , fory .MaxInt16 }, nil ))
118+ require .Nil (t , fory_ .Serialize (buffer , [2 ]int32 {1 , fory .MaxInt32 }, nil ))
119+ require .Nil (t , fory_ .Serialize (buffer , [2 ]int64 {1 , fory .MaxInt64 }, nil ))
120+ require .Nil (t , fory_ .Serialize (buffer , [2 ]float32 {1.0 , 2.0 }, nil ))
121+ require .Nil (t , fory_ .Serialize (buffer , [2 ]float64 {1.0 , 2.0 }, nil ))
122122
123123 check := func (buf * fory.ByteBuffer ) {
124124 values := []interface {}{
125125 true , false , int64 (- 1 ), int8 (fory .MaxInt8 ), int8 (fory .MinInt8 ), int16 (fory .MaxInt16 ), int16 (fory .MinInt16 ),
126126 int32 (fory .MaxInt32 ), int32 (fory .MinInt32 ), int64 (fory .MaxInt64 ), int64 (fory .MinInt64 ), float32 (- 1 ),
127127 float64 (- 1 ), "str" , day , instant , list , dict , set ,
128- []bool {true , false }, []int16 {1 , fory .MaxInt16 }, []int32 {1 , fory .MaxInt32 },
129- []int64 {1 , fory .MaxInt64 }, []float32 {1.0 , 2.0 }, []float64 {1.0 , 2.0 },
128+ [2 ]bool {true , false }, [2 ]int16 {1 , fory .MaxInt16 }, [2 ]int32 {1 , fory .MaxInt32 },
129+ [2 ]int64 {1 , fory .MaxInt64 }, [2 ]float32 {1.0 , 2.0 }, [2 ]float64 {1.0 , 2.0 },
130130 }
131131 for index , value := range values {
132- var newValue interface {}
133- require .Nil (t , fory_ .Deserialize (buf , & newValue , nil ))
134- switch reflect .ValueOf (value ).Kind () {
135- case reflect .Int , reflect .Int8 , reflect .Int16 , reflect .Int32 , reflect .Int64 :
136- require .Equal (t , reflect .ValueOf (value ).Int (),
137- reflect .ValueOf (newValue ).Int (), fmt .Sprintf ("index %d" , index ))
138- case reflect .Float32 , reflect .Float64 :
139- require .Equal (t , reflect .ValueOf (value ).Float (),
140- reflect .ValueOf (newValue ).Float (), fmt .Sprintf ("index %d" , index ))
141- default :
142- require .Equal (t , value , newValue , fmt .Sprintf ("index %d" , index ))
143- }
132+ typ := reflect .TypeOf (value )
133+ holder := reflect .New (typ )
134+ require .Nil (t , fory_ .Deserialize (buf , holder .Interface (), nil ))
135+ got := holder .Elem ().Interface ()
136+ require .Equal (t , value , got , fmt .Sprintf ("index %d" , index ))
144137 }
145138 }
146139 check (buffer )
@@ -260,7 +253,6 @@ func TestSerializeComplexStruct(t *testing.T) {
260253 obj .F10 = 1 / 3.0
261254 obj .F11 = [2 ]int16 {1 , 2 }
262255 obj .F12 = []int16 {- 1 , 4 }
263-
264256 structRoundBack (t , fory_ , obj , "test_serialize_complex_struct" )
265257}
266258
0 commit comments