| | |
| | | } |
| | | } |
| | | |
| | | func TestResolveManualCantoneseUsesSenseVoiceYueDefault(t *testing.T) { |
| | | cfg := config.Default() |
| | | cfg.LanguageMode = config.LanguageModeManual |
| | | cfg.LanguageID = model.CantoneseLanguageID |
| | | cfg.ModelSelectionMode = config.ModelSelectionModeAuto |
| | | |
| | | current := Resolve(cfg, fakeDetector{locale: "en-US"}) |
| | | if current.LanguageSettings.EffectiveLanguageID != model.CantoneseLanguageID { |
| | | t.Fatalf("effective language = %q, want %q", current.LanguageSettings.EffectiveLanguageID, model.CantoneseLanguageID) |
| | | } |
| | | if current.ModelID != model.SenseVoiceYueModelID { |
| | | t.Fatalf("model id = %q, want %q", current.ModelID, model.SenseVoiceYueModelID) |
| | | } |
| | | if current.Profile.BackendKind != model.BackendSenseVoice { |
| | | t.Fatalf("backend = %q, want %q", current.Profile.BackendKind, model.BackendSenseVoice) |
| | | } |
| | | } |
| | | |
| | | func TestResolveManualCantoneseRejectsChineseUpgradeModels(t *testing.T) { |
| | | tests := []string{ |
| | | model.Qwen3ASRModelID, |
| | | model.XASRZhEn960ModelID, |
| | | } |
| | | for _, modelID := range tests { |
| | | cfg := config.Default() |
| | | cfg.LanguageMode = config.LanguageModeManual |
| | | cfg.LanguageID = model.CantoneseLanguageID |
| | | cfg.ModelSelectionMode = config.ModelSelectionModeManual |
| | | cfg.SelectedModelID = modelID |
| | | |
| | | current := Resolve(cfg, fakeDetector{locale: "en-US"}) |
| | | if current.ModelID != model.SenseVoiceYueModelID { |
| | | t.Fatalf("%s resolved model id = %q, want %q", modelID, current.ModelID, model.SenseVoiceYueModelID) |
| | | } |
| | | if current.FallbackReason != "manual model not available for language" { |
| | | t.Fatalf("%s fallback reason = %q, want language incompatibility", modelID, current.FallbackReason) |
| | | } |
| | | } |
| | | } |
| | | |
| | | func TestResolveAutoUsesEuropeanDefaultModel(t *testing.T) { |
| | | cfg := config.Default() |
| | | cfg.LanguageMode = config.LanguageModeAuto |