package audio import "testing" func TestPCM16CodecRoundTrip(t *testing.T) { c := NewPCM16Codec() in := []byte{0x01, 0x02, 0x03, 0x04, 0xff, 0x7f} enc, err := c.Encode(in) if err != nil { t.Fatalf("encode: %v", err) } dec, err := c.Decode(enc) if err != nil { t.Fatalf("decode: %v", err) } if string(dec) != string(in) { t.Fatalf("round-trip mismatch: got % X want % X", dec, in) } } func TestPCM16CodecTrimsOddByte(t *testing.T) { c := NewPCM16Codec() dec, err := c.Decode([]byte{0x10, 0x20, 0x30}) // 3 bytes = 1 sample + stray if err != nil { t.Fatalf("decode: %v", err) } if len(dec) != 2 { t.Fatalf("expected the stray byte trimmed to 2, got %d", len(dec)) } } func TestPCM16CodecRejectsSingleByte(t *testing.T) { c := NewPCM16Codec() if _, err := c.Decode([]byte{0x10}); err == nil { t.Fatalf("expected an error for a sub-sample payload") } }