|
- package audio
-
- import (
- "os"
- "path/filepath"
- "testing"
- )
-
- func TestPCM16ToSample(t *testing.T) {
- if pcm16ToSample(32767) <= 0 {
- t.Fatal("expected positive sample")
- }
- if pcm16ToSample(-32768) < -1.0 {
- t.Fatal("expected clamped lower bound")
- }
- }
-
- func TestLoadWAVSource(t *testing.T) {
- dir := t.TempDir()
- path := filepath.Join(dir, "test.wav")
- wav := []byte{
- 'R','I','F','F', 52,0,0,0, 'W','A','V','E',
- 'f','m','t',' ', 16,0,0,0, 1,0, 1,0, 0x80,0xbb,0x00,0x00, 0x00,0x77,0x01,0x00, 2,0, 16,0,
- 'd','a','t','a', 8,0,0,0,
- 0,0, 255,127, 0,128, 0,0,
- }
- if err := os.WriteFile(path, wav, 0o644); err != nil {
- t.Fatalf("write wav: %v", err)
- }
- src, err := LoadWAVSource(path)
- if err != nil {
- t.Fatalf("LoadWAVSource failed: %v", err)
- }
- if src.SampleRate != 48000 {
- t.Fatalf("unexpected sample rate: %d", src.SampleRate)
- }
- if src.Channels != 1 {
- t.Fatalf("unexpected channels: %d", src.Channels)
- }
- _ = src.NextFrame()
- }
-
- func TestRejectInvalidWAV(t *testing.T) {
- dir := t.TempDir()
- path := filepath.Join(dir, "bad.wav")
- if err := os.WriteFile(path, []byte("nope"), 0o644); err != nil {
- t.Fatalf("write wav: %v", err)
- }
- if _, err := LoadWAVSource(path); err == nil {
- t.Fatal("expected wav load error")
- }
- }
|