package main import ( "testing" "fmt" ) func TestEncode(t *testing.T) { strRes := "Cdog" bytes := Encode("dog") str := string(bytes) if str != strRes { t.Error(fmt.Sprintf("Expected %q, got %q", strRes, str)) } //dec,_ := Decode(bytes, 0) sliceRes := "\x83CdogCgodCcat" strs := []string{"dog", "god", "cat"} bytes = Encode(strs) slice := string(bytes) if slice != sliceRes { t.Error(fmt.Sprintf("Expected %q, got %q", sliceRes, slice)) } //dec,_ = Decode(bytes, 0) } func TestMultiEncode(t *testing.T) { inter := []interface{}{ []interface{}{ "1","2","3", }, []string{ "string", "string2", "\x86A0J1234567890A\x00B20A0\x82F395843F657986", "\x86A0J1234567890A\x00B20A0\x8cF395843F657986I335612448F524099H16716881A0H13114947G2039362G1507139H16719697G1048387E65360", }, "test", } bytes := Encode(inter) Decode(bytes, 0) } func BenchmarkEncodeDecode(b *testing.B) { for i := 0; i < b.N; i++ { bytes := Encode([]string{"dog", "god", "cat"}) Decode(bytes, 0) } }