package main
import (
"testing"
"github.com/gopxl/beep/v2"
)
// stubStreamer is a no-op beep.Streamer used to exercise resampling wiring.
type stubStreamer struct{}
func (stubStreamer) Stream(samples [][2]float64) (int, bool) { return 0, false }
func (stubStreamer) Err() error { return nil }
func TestResampleForPlayback(t *testing.T) {
src := stubStreamer{}
tests := []struct {
name string
fileRate beep.SampleRate
speakerRate beep.SampleRate
speed float64
wantResample bool
wantRatio float64
}{
{
name: "matching rate normal speed returns source unchanged",
fileRate: 44100,
speakerRate: 44100,
speed: 1.0,
wantResample: false,
},
{
name: "48k file on 44.1k speaker resamples down",
fileRate: 48000,
speakerRate: 44100,
speed: 1.0,
wantResample: true,
wantRatio: 48000.0 / 44100.0,
},