Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

39 lignes
980B

  1. package audio
  2. import (
  3. "os"
  4. "path/filepath"
  5. "testing"
  6. )
  7. func TestPCM16ToSample(t *testing.T) {
  8. if pcm16ToSample(32767) <= 0 {
  9. t.Fatal("expected positive sample")
  10. }
  11. }
  12. func TestLoadWAVSource(t *testing.T) {
  13. dir := t.TempDir()
  14. path := filepath.Join(dir, "test.wav")
  15. wav := []byte{
  16. 'R','I','F','F', 52,0,0,0, 'W','A','V','E',
  17. 'f','m','t',' ', 16,0,0,0, 1,0, 1,0, 0x80,0xbb,0x00,0x00, 0x00,0x77,0x01,0x00, 2,0, 16,0,
  18. 'd','a','t','a', 8,0,0,0,
  19. 0,0, 255,127, 0,128, 0,0,
  20. }
  21. if err := os.WriteFile(path, wav, 0o644); err != nil {
  22. t.Fatalf("write wav: %v", err)
  23. }
  24. src, err := LoadWAVSource(path)
  25. if err != nil {
  26. t.Fatalf("LoadWAVSource failed: %v", err)
  27. }
  28. if src.SampleRate != 48000 {
  29. t.Fatalf("unexpected sample rate: %d", src.SampleRate)
  30. }
  31. if src.Channels != 1 {
  32. t.Fatalf("unexpected channels: %d", src.Channels)
  33. }
  34. _ = src.NextFrame()
  35. }