You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
656 B
37 lines
656 B
package kind |
|
|
|
import ( |
|
"testing" |
|
|
|
"lol.mleku.dev/chk" |
|
|
|
"lukechampine.com/frand" |
|
) |
|
|
|
func TestMarshalUnmarshal(t *testing.T) { |
|
var err error |
|
k := make([]*K, 1000000) |
|
for i := range k { |
|
k[i] = New(uint16(frand.Intn(65535))) |
|
} |
|
mk := make([][]byte, len(k)) |
|
for i := range mk { |
|
mk[i] = make([]byte, 0, 5) // 16 bits max 65535 = 5 characters |
|
} |
|
for i := range k { |
|
mk[i] = k[i].Marshal(mk[i]) |
|
} |
|
k2 := make([]*K, len(k)) |
|
for i := range k2 { |
|
k2[i] = New(0) |
|
} |
|
for i := range k2 { |
|
var r []byte |
|
if r, err = k2[i].Unmarshal(mk[i]); chk.E(err) { |
|
t.Fatal(err) |
|
} |
|
if len(r) != 0 { |
|
t.Fatalf("remainder after unmarshal: '%s'", r) |
|
} |
|
} |
|
}
|
|
|