gitee.com/quant1x/gox@v1.21.2/encoding/binary/cstruct/tests/x_test.go (about) 1 package tests 2 3 import ( 4 "fmt" 5 "gitee.com/quant1x/gox/encoding/binary/cstruct" 6 "testing" 7 ) 8 9 type mystruct44 struct { 10 F37 uint16 11 F38 [5]int32 12 } 13 14 type mystruct4 struct { 15 F6 int8 16 F7 int16 17 } 18 19 type mystruct3 struct { 20 F5 []byte 21 } 22 23 type mystruct2 struct { 24 F3 float64 25 F4 string 26 S1 mystruct3 27 } 28 29 type mystruct1 struct { 30 F1 bool 31 F2 float32 32 F3 float64 33 F4 string 34 F5 []byte 35 F6 int8 36 F7 int16 37 F9 int32 38 F11 int64 39 F12 uint8 40 F13 uint16 41 S0 *mystruct2 42 S1 mystruct44 43 S2 mystruct44 44 S3 mystruct44 45 F15 uint32 46 F17 uint64 47 F18 []bool 48 F19 []int8 49 F20 []uint8 50 F21 []int16 51 F22 []uint16 52 F23 []int32 53 F24 []uint32 54 F25 []int64 55 F26 []uint64 56 F27 []float32 57 F28 []float64 58 F29 []string 59 F30 []*mystruct4 60 F31 [][]byte 61 F32 [5]int8 62 F33 [6]byte 63 F34 [7]uint8 64 F35 [4]bool 65 } 66 67 func Test_LE1(t *testing.T) { 68 a := &mystruct1{S0: &mystruct2{}} 69 a.F1 = true 70 a.F2 = 0.98 71 a.F3 = 999888888.777 72 a.F4 = "hello1hello2hello3hello4hello5hello6hello7hello8hello9hello0" 73 a.F5 = []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0} 74 a.F6 = -128 75 a.F7 = -32768 76 a.F9 = -2147483648 77 a.F11 = -9223372036854775808 78 a.F12 = 255 79 a.F13 = 65535 80 a.F15 = 4294967295 81 a.F17 = 18446744073709551615 82 a.F18 = []bool{false, true, true, false, true} 83 a.F19 = []int8{1, -1, 0, 127, -128} 84 a.F20 = []uint8{0, 1, 2, 127, 255} 85 a.F21 = []int16{1, -1, 0, 32767, -32768} 86 a.F22 = []uint16{0, 1, 2, 32767, 65535} 87 a.F23 = []int32{1, -1, 0, 2147483647, -2147483648} 88 a.F24 = []uint32{0, 1, 2, 2147483647, 4294967295} 89 a.F25 = []int64{1, -1, 0, 9223372036854775807, -9223372036854775808} 90 a.F26 = []uint64{0, 1, 2, 9223372036854775807, 18446744073709551615} 91 a.F27 = []float32{0.98, -1, 0, -0.98} 92 a.F28 = []float64{0, 999888888.777, 2, -999888888.777} 93 a.F29 = []string{"hello", "", "world", "", "123"} 94 a.F30 = []*mystruct4{&mystruct4{1, 2}, &mystruct4{10, 20}, &mystruct4{100, 200}, &mystruct4{11, 21}} 95 a.F31 = [][]byte{[]byte("hello1"), []byte{}, []byte("world1"), []byte("hello2"), []byte{}, []byte("world2")} 96 a.F32 = [5]int8{0, 1, 2, 3, 4} 97 a.F33 = [6]byte{'h', 'e', 'l', 'l', 'o', '1'} 98 a.F34 = [7]uint8{0, 1, 2, 3, 4, 5, 6} 99 a.F35 = [4]bool{true, false, false, true} 100 101 a.S0.F3 = 988.07 102 a.S0.F4 = "world1" 103 a.S0.S1.F5 = []byte("world1") 104 105 a.S1.F37 = 65535 106 a.S1.F38 = [5]int32{1, -1, 0, 2147483647, -2147483648} 107 a.S2.F37 = 1 108 a.S2.F38 = [5]int32{1, -1, 0, 1, -2} 109 a.S3.F37 = 65535 110 a.S3.F38 = [5]int32{3, -3, 0, 3, -3} 111 112 test1(t, a) 113 } 114 115 func Test_LE2(t *testing.T) { 116 a := &mystruct1{S0: &mystruct2{}} 117 a.F1 = false 118 a.F2 = -0.98 119 a.F3 = -999888888.777 120 a.F4 = "" 121 a.F5 = []byte{} 122 a.F6 = 127 123 a.F7 = 32767 124 a.F9 = 2147483647 125 a.F11 = 9223372036854775807 126 a.F12 = 1 127 a.F13 = 1 128 a.F15 = 1 129 a.F17 = 1 130 a.F18 = []bool{} 131 a.F19 = []int8{} 132 a.F20 = []uint8{} 133 a.F21 = []int16{} 134 a.F22 = []uint16{} 135 a.F23 = []int32{} 136 a.F24 = []uint32{} 137 a.F25 = []int64{} 138 a.F26 = []uint64{} 139 a.F27 = []float32{} 140 a.F28 = []float64{} 141 a.F29 = []string{} 142 a.F30 = []*mystruct4{} 143 a.F31 = [][]byte{} 144 145 a.S0.F3 = 988.07 146 a.S0.F4 = "world2" 147 a.S0.S1.F5 = []byte("world2") 148 149 test1(t, a) 150 } 151 152 func test1(t *testing.T, a *mystruct1) { 153 buf_l, _ := cstruct.Pack(a) 154 b := &mystruct1{S0: &mystruct2{}} 155 if err := cstruct.Unpack(buf_l, b); err != nil { 156 fmt.Println(err) 157 t.Error("出错啦!#0") 158 return 159 } 160 161 if a.F1 != b.F1 { 162 t.Error("出错啦!#1") 163 return 164 } 165 t.Log(b.F1) 166 if a.F2 != b.F2 { 167 t.Error("出错啦!#2") 168 return 169 } 170 t.Log(b.F2) 171 if a.F3 != b.F3 { 172 t.Error("出错啦!#3") 173 return 174 } 175 t.Log(b.F3) 176 if a.F4 != b.F4 { 177 t.Error("出错啦!#4") 178 return 179 } 180 t.Log(b.F4) 181 if len(a.F5) != len(b.F5) { 182 t.Error("出错啦!#5") 183 return 184 } 185 t.Log(b.F5) 186 for i := 0; i < len(a.F5); i++ { 187 if a.F5[i] != a.F5[i] { 188 t.Error("出错啦!#5") 189 return 190 } 191 } 192 if a.F6 != b.F6 { 193 t.Error("出错啦!#6") 194 return 195 } 196 t.Log(b.F6) 197 if a.F7 != b.F7 { 198 t.Error("出错啦!#7") 199 return 200 } 201 t.Log(b.F7) 202 if a.F9 != b.F9 { 203 t.Error("出错啦!#9") 204 return 205 } 206 t.Log(b.F9) 207 if a.F11 != b.F11 { 208 t.Error("出错啦!#11") 209 return 210 } 211 t.Log(b.F11) 212 if a.F12 != b.F12 { 213 t.Error("出错啦!#12") 214 return 215 } 216 t.Log(b.F12) 217 if a.F13 != b.F13 { 218 t.Error("出错啦!#13") 219 return 220 } 221 t.Log(b.F13) 222 if a.F15 != b.F15 { 223 t.Error("出错啦!#15") 224 return 225 } 226 t.Log(b.F15) 227 if a.F17 != b.F17 { 228 t.Error("出错啦!#17") 229 return 230 } 231 t.Log(b.F17) 232 if a.S0.F3 != b.S0.F3 { 233 t.Error("出错啦!#18") 234 return 235 } 236 t.Log(b.S0.F3) 237 if a.S0.F4 != b.S0.F4 { 238 t.Error("出错啦!#19") 239 return 240 } 241 t.Log(b.S0.F4) 242 if len(a.S0.S1.F5) != len(b.S0.S1.F5) { 243 t.Error("出错啦!#20") 244 return 245 } 246 t.Log(b.S0.S1.F5) 247 for i := 0; i < len(a.S0.S1.F5); i++ { 248 if a.S0.S1.F5[i] != b.S0.S1.F5[i] { 249 t.Error("出错啦!#20") 250 return 251 } 252 } 253 254 if len(a.F18) != len(b.F18) { 255 t.Error("出错啦!#21") 256 return 257 } 258 for i := 0; i < len(a.F18); i++ { 259 if a.F18[i] != b.F18[i] { 260 t.Error("出错啦!#21") 261 return 262 } 263 } 264 t.Log(b.F18) 265 266 if len(a.F19) != len(b.F19) { 267 t.Error("出错啦!#22") 268 return 269 } 270 for i := 0; i < len(a.F19); i++ { 271 if a.F19[i] != b.F19[i] { 272 t.Error("出错啦!#22") 273 return 274 } 275 } 276 t.Log(b.F19) 277 278 if len(a.F20) != len(b.F20) { 279 t.Error("出错啦!#23") 280 return 281 } 282 for i := 0; i < len(a.F20); i++ { 283 if a.F20[i] != b.F20[i] { 284 t.Error("出错啦!#23") 285 return 286 } 287 } 288 t.Log(b.F20) 289 290 if len(a.F21) != len(b.F21) { 291 t.Error("出错啦!#24") 292 return 293 } 294 for i := 0; i < len(a.F21); i++ { 295 if a.F21[i] != b.F21[i] { 296 t.Error("出错啦!#24") 297 return 298 } 299 } 300 t.Log(b.F21) 301 302 if len(a.F22) != len(b.F22) { 303 t.Error("出错啦!#25") 304 return 305 } 306 for i := 0; i < len(a.F22); i++ { 307 if a.F22[i] != b.F22[i] { 308 t.Error("出错啦!#25") 309 return 310 } 311 } 312 t.Log(b.F22) 313 314 if len(a.F23) != len(b.F23) { 315 t.Error("出错啦!#26") 316 return 317 } 318 for i := 0; i < len(a.F23); i++ { 319 if a.F23[i] != b.F23[i] { 320 t.Error("出错啦!#26") 321 return 322 } 323 } 324 t.Log(b.F23) 325 326 if len(a.F24) != len(b.F24) { 327 t.Error("出错啦!#27") 328 return 329 } 330 for i := 0; i < len(a.F24); i++ { 331 if a.F24[i] != b.F24[i] { 332 t.Error("出错啦!#27") 333 return 334 } 335 } 336 t.Log(b.F24) 337 338 if len(a.F25) != len(b.F25) { 339 t.Error("出错啦!#28") 340 return 341 } 342 for i := 0; i < len(a.F25); i++ { 343 if a.F25[i] != b.F25[i] { 344 t.Error("出错啦!#28") 345 return 346 } 347 } 348 t.Log(b.F25) 349 350 if len(a.F26) != len(b.F26) { 351 t.Error("出错啦!#29") 352 return 353 } 354 for i := 0; i < len(a.F26); i++ { 355 if a.F26[i] != b.F26[i] { 356 t.Error("出错啦!#29") 357 return 358 } 359 } 360 t.Log(b.F26) 361 362 if len(a.F27) != len(b.F27) { 363 t.Error("出错啦!#30") 364 return 365 } 366 for i := 0; i < len(a.F27); i++ { 367 if a.F27[i] != b.F27[i] { 368 t.Error("出错啦!#30") 369 return 370 } 371 } 372 t.Log(b.F27) 373 374 if len(a.F28) != len(b.F28) { 375 t.Error("出错啦!#31") 376 return 377 } 378 for i := 0; i < len(a.F28); i++ { 379 if a.F28[i] != b.F28[i] { 380 t.Error("出错啦!#31") 381 return 382 } 383 } 384 t.Log(b.F28) 385 386 if len(a.F29) != len(b.F29) { 387 t.Error("出错啦!#32") 388 return 389 } 390 for i := 0; i < len(a.F29); i++ { 391 if a.F29[i] != b.F29[i] { 392 t.Error("出错啦!#32") 393 return 394 } 395 } 396 t.Log(b.F29) 397 398 if len(a.F30) != len(b.F30) { 399 t.Error("出错啦!#33") 400 return 401 } 402 for i := 0; i < len(a.F30); i++ { 403 if a.F30[i].F6 != b.F30[i].F6 { 404 t.Error("出错啦!#33") 405 return 406 } 407 if a.F30[i].F7 != b.F30[i].F7 { 408 t.Error("出错啦!#33") 409 return 410 } 411 } 412 t.Log(b.F30) 413 414 if len(a.F31) != len(b.F31) { 415 t.Error("出错啦!#34") 416 return 417 } 418 for i := 0; i < len(a.F31); i++ { 419 if string(a.F31[i]) != string(b.F31[i]) { 420 t.Error("出错啦!#34") 421 return 422 } 423 } 424 t.Log(b.F31) 425 t.Log(b.F32) 426 t.Log(b.F33) 427 t.Log(b.F34) 428 t.Log(b.F35) 429 t.Log(b.S1) 430 t.Log(b.S2) 431 t.Log(b.S3) 432 }