Ariver
2026-06-07 58c2c4ae5eaca3dff127f2ffb15f9dd2b160f994
privatevoice.src/internal/modelselection/selection_test.go
@@ -59,11 +59,77 @@
   cfg := config.Default()
   cfg.LanguageMode = config.LanguageModeAuto
   cfg.ModelSelectionMode = config.ModelSelectionModeManual
   cfg.SelectedModelID = model.DefaultModelID
   cfg.SelectedModelID = model.ParakeetModelID
   current := Resolve(cfg, fakeDetector{locale: "en-US"})
   if current.ModelID != model.ParakeetModelID {
      t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.ParakeetModelID)
   }
}
func TestResolveManualUsesQwen3ASRForChinese(t *testing.T) {
   cfg := config.Default()
   cfg.LanguageMode = config.LanguageModeAuto
   cfg.ModelSelectionMode = config.ModelSelectionModeManual
   cfg.SelectedModelID = model.Qwen3ASRModelID
   current := Resolve(cfg, fakeDetector{locale: "zh-CN"})
   if current.ModelID != model.Qwen3ASRModelID {
      t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.Qwen3ASRModelID)
   }
}
func TestResolveManualUsesXASRForChinese(t *testing.T) {
   cfg := config.Default()
   cfg.LanguageMode = config.LanguageModeAuto
   cfg.ModelSelectionMode = config.ModelSelectionModeManual
   cfg.SelectedModelID = model.XASRZhEn960ModelID
   current := Resolve(cfg, fakeDetector{locale: "zh-CN"})
   if current.ModelID != model.XASRZhEn960ModelID {
      t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.XASRZhEn960ModelID)
   }
}
func TestResolveManualUsesXASRForEnglish(t *testing.T) {
   cfg := config.Default()
   cfg.LanguageMode = config.LanguageModeAuto
   cfg.ModelSelectionMode = config.ModelSelectionModeManual
   cfg.SelectedModelID = model.XASRZhEn960ModelID
   current := Resolve(cfg, fakeDetector{locale: "en-US"})
   if current.ModelID != model.XASRZhEn960ModelID {
      t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.XASRZhEn960ModelID)
   }
}
func TestResolveManualModelFallsBackWhenLanguageIncompatible(t *testing.T) {
   cfg := config.Default()
   cfg.LanguageMode = config.LanguageModeAuto
   cfg.ModelSelectionMode = config.ModelSelectionModeManual
   cfg.SelectedModelID = model.ParakeetModelID
   current := Resolve(cfg, fakeDetector{locale: "zh-CN"})
   if current.ModelID != model.DefaultModelID {
      t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.DefaultModelID)
      t.Fatalf("model id = %q, want Chinese default %q", current.ModelID, model.DefaultModelID)
   }
   if current.FallbackReason == "" {
      t.Fatal("expected fallback reason")
   }
}
func TestResolveManualQwen3ASRFallsBackForEnglish(t *testing.T) {
   cfg := config.Default()
   cfg.LanguageMode = config.LanguageModeAuto
   cfg.ModelSelectionMode = config.ModelSelectionModeManual
   cfg.SelectedModelID = model.Qwen3ASRModelID
   current := Resolve(cfg, fakeDetector{locale: "en-US"})
   if current.ModelID != model.MoonshineModelID {
      t.Fatalf("model id = %q, want English default %q", current.ModelID, model.MoonshineModelID)
   }
   if current.FallbackReason == "" {
      t.Fatal("expected fallback reason")
   }
}