diff --git a/synth/config_test.go b/synth/config_test.go index e969a7e..f041e7f 100644 --- a/synth/config_test.go +++ b/synth/config_test.go @@ -16,10 +16,13 @@ func TestAllClassesHaveConfig(t *testing.T) { } func TestFrequenciesInRange(t *testing.T) { + const nyquist = float64(synth.SampleRate) / 2.0 // 22050 Hz for class, cfg := range synth.ClassFreqConfigs { - // D-05: unknown buckets use 850-1100 Hz dissonant range; known classes use 60-800 Hz - if cfg.BaseHz < 60 || cfg.BaseHz > 1100 { - t.Errorf("class %q BaseHz=%.1f is out of range [60, 1100]", class, cfg.BaseHz) + if cfg.BaseHz <= 0 { + t.Errorf("class %q BaseHz=%.1f must be positive", class, cfg.BaseHz) + } + if cfg.BaseHz >= nyquist { + t.Errorf("class %q BaseHz=%.1f exceeds Nyquist (%.1f Hz)", class, cfg.BaseHz, nyquist) } } } @@ -50,15 +53,7 @@ func TestPanPositionsInRange(t *testing.T) { } } -func TestClassFreqConfigsComplete(t *testing.T) { - for _, class := range classify.AllClasses() { - if _, ok := synth.ClassFreqConfigs[class]; !ok { - t.Errorf("ClassFreqConfigs missing entry for class %q", class) - } - } -} - -func TestNumLayersMatchesAllClasses(t *testing.T) { +func TestClassFreqConfigsMatchAllClasses(t *testing.T) { if len(synth.ClassFreqConfigs) != len(classify.AllClasses()) { t.Errorf("ClassFreqConfigs has %d entries but AllClasses() has %d entries", len(synth.ClassFreqConfigs), len(classify.AllClasses()))