(t *testing.T)
| 448 | } |
| 449 | |
| 450 | func TestIsEmbeddingModel(t *testing.T) { |
| 451 | t.Parallel() |
| 452 | |
| 453 | tests := []struct { |
| 454 | name string |
| 455 | family string |
| 456 | model string |
| 457 | want bool |
| 458 | }{ |
| 459 | // Family-based detection |
| 460 | {"family text-embedding", "text-embedding", "Text Embedding 3 Large", true}, |
| 461 | {"family cohere-embed", "cohere-embed", "Embed v4.0", true}, |
| 462 | {"family mistral-embed", "mistral-embed", "Mistral Embed", true}, |
| 463 | {"family gemini-embedding", "gemini-embedding", "Gemini Embedding", true}, |
| 464 | // Name-based fallback (empty family) |
| 465 | {"name fallback embed", "", "Text Embedding 3 Large", true}, |
| 466 | {"name fallback mistral", "", "Mistral Embed", true}, |
| 467 | // Non-embedding models |
| 468 | {"gpt family", "gpt", "GPT-4o", false}, |
| 469 | {"claude family", "claude-sonnet", "Claude Sonnet 4", false}, |
| 470 | {"llama family", "llama", "Llama 3.1 70B", false}, |
| 471 | {"empty both", "", "GPT-4o", false}, |
| 472 | } |
| 473 | |
| 474 | for _, tt := range tests { |
| 475 | t.Run(tt.name, func(t *testing.T) { |
| 476 | t.Parallel() |
| 477 | got := isEmbeddingModel(tt.family, tt.model) |
| 478 | assert.Equal(t, tt.want, got) |
| 479 | }) |
| 480 | } |
| 481 | } |
| 482 | |
| 483 | func TestMapModelsDevProvider(t *testing.T) { |
| 484 | t.Parallel() |
nothing calls this directly
no test coverage detected