package audio
|
|
import "testing"
|
|
func TestReadSamplesSinceReturnsOnlyNewSamples(t *testing.T) {
|
r := &Recorder{
|
pcmBuf: pcm16LE(0, 16384, -32768),
|
}
|
|
samples, nextOffset := r.ReadSamplesSince(1)
|
if nextOffset != 3 {
|
t.Fatalf("next offset = %d, want 3", nextOffset)
|
}
|
if len(samples) != 2 {
|
t.Fatalf("sample count = %d, want 2", len(samples))
|
}
|
if samples[0] != 0.5 {
|
t.Fatalf("samples[0] = %f, want 0.5", samples[0])
|
}
|
if samples[1] != -1 {
|
t.Fatalf("samples[1] = %f, want -1", samples[1])
|
}
|
}
|
|
func TestReadSamplesSinceClampsOffset(t *testing.T) {
|
r := &Recorder{
|
pcmBuf: pcm16LE(0, 16384),
|
}
|
|
samples, nextOffset := r.ReadSamplesSince(99)
|
if nextOffset != 2 {
|
t.Fatalf("next offset = %d, want 2", nextOffset)
|
}
|
if len(samples) != 0 {
|
t.Fatalf("sample count = %d, want 0", len(samples))
|
}
|
}
|
|
func pcm16LE(values ...int16) []byte {
|
buf := make([]byte, len(values)*2)
|
for i, value := range values {
|
buf[i*2] = byte(value)
|
buf[i*2+1] = byte(value >> 8)
|
}
|
return buf
|
}
|