32 lines
809 B
Go
32 lines
809 B
Go
package audio
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestResamplePCM16BetweenTelephonyRates(t *testing.T) {
|
|
pcm8k := []byte{1, 0, 3, 0}
|
|
pcm16k := ResamplePCM16(pcm8k, 8000, 16000)
|
|
if want := []byte{1, 0, 2, 0, 3, 0, 3, 0}; !bytes.Equal(pcm16k, want) {
|
|
t.Fatalf("8 kHz to 16 kHz = %v, want %v", pcm16k, want)
|
|
}
|
|
|
|
downsampled := ResamplePCM16(pcm16k, 16000, 8000)
|
|
if !bytes.Equal(downsampled, pcm8k) {
|
|
t.Fatalf("16 kHz to 8 kHz = %v, want %v", downsampled, pcm8k)
|
|
}
|
|
}
|
|
|
|
func TestResamplePCM16AtSameRateReturnsIndependentCopy(t *testing.T) {
|
|
input := []byte{1, 0, 2, 0}
|
|
got := ResamplePCM16(input, 16000, 16000)
|
|
if !bytes.Equal(got, input) {
|
|
t.Fatalf("same-rate PCM16 = %v, want %v", got, input)
|
|
}
|
|
got[0] = 9
|
|
if input[0] != 1 {
|
|
t.Fatal("same-rate resampling returned the original buffer")
|
|
}
|
|
}
|