|
|
|
@@ -52,6 +52,33 @@ func TestGenerateFrameCompositeOnly(t *testing.T) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func TestStereoDisabledSuppressesPilotAndStereoDifference(t *testing.T) { |
|
|
|
cfgStereo := cfgpkg.Default() |
|
|
|
cfgStereo.FM.FMModulationEnabled = false |
|
|
|
cfgStereo.FM.StereoEnabled = true |
|
|
|
cfgStereo.Audio.ToneLeftHz = 1000 |
|
|
|
cfgStereo.Audio.ToneRightHz = 1600 |
|
|
|
|
|
|
|
cfgMono := cfgStereo |
|
|
|
cfgMono.FM.StereoEnabled = false |
|
|
|
|
|
|
|
stereoFrame := NewGenerator(cfgStereo).GenerateFrame(20 * time.Millisecond) |
|
|
|
monoFrame := NewGenerator(cfgMono).GenerateFrame(20 * time.Millisecond) |
|
|
|
|
|
|
|
if len(stereoFrame.Samples) != len(monoFrame.Samples) { |
|
|
|
t.Fatal("frame length mismatch") |
|
|
|
} |
|
|
|
|
|
|
|
var diffEnergy float64 |
|
|
|
for i := range stereoFrame.Samples { |
|
|
|
d := float64(stereoFrame.Samples[i].I - monoFrame.Samples[i].I) |
|
|
|
diffEnergy += d * d |
|
|
|
} |
|
|
|
if diffEnergy == 0 { |
|
|
|
t.Fatal("expected stereo-enabled and stereo-disabled composite output to differ") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func TestWriteFile(t *testing.T) { |
|
|
|
cfg := cfgpkg.Default() |
|
|
|
out := filepath.Join(t.TempDir(), "test.iqf32") |
|
|
|
|