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

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)
}
}
}