|
1 | 1 | import { geminiModels } from "../providers/gemini.js" |
2 | 2 | import { vertexModels } from "../providers/vertex.js" |
3 | 3 |
|
| 4 | +describe.each([ |
| 5 | + ["Gemini API", geminiModels["gemini-4-argon"]], |
| 6 | + ["Vertex AI", vertexModels["gemini-4-argon"]], |
| 7 | +])("Gemini 4 Argon on %s", (_provider, model) => { |
| 8 | + // https://cloud.google.com/gemini-enterprise-agent-platform/models/guides/gemini-4-argon |
| 9 | + it("exposes the documented limits, thinking levels, and promo pricing", () => { |
| 10 | + expect(model.maxTokens).toBe(65_536) |
| 11 | + expect(model.contextWindow).toBe(1_048_576) |
| 12 | + expect(model.supportsImages).toBe(true) |
| 13 | + // Implicit caching only; explicit context caching is unsupported. |
| 14 | + expect(model.supportsPromptCache).toBe(true) |
| 15 | + expect(model).not.toHaveProperty("cacheWritesPrice") |
| 16 | + // LOW, MEDIUM (default), HIGH; thinking_budget and MINIMAL error out. |
| 17 | + expect(model.supportsReasoningEffort).toEqual(["low", "medium", "high"]) |
| 18 | + expect(model.reasoningEffort).toBe("medium") |
| 19 | + expect(model.supportsReasoningBudget).toBe(false) |
| 20 | + // The backend ignores temperature/top_p/top_k. |
| 21 | + expect(model.supportsTemperature).toBe(false) |
| 22 | + // Promo pricing through Nov 30, 2026 (input $4 / output $20 / cache |
| 23 | + // $0.20 per 1M tokens from Dec 1, 2026). |
| 24 | + expect(model.inputPrice).toBe(2.0) |
| 25 | + expect(model.outputPrice).toBe(10.0) |
| 26 | + expect(model.cacheReadsPrice).toBe(0.1) |
| 27 | + }) |
| 28 | +}) |
| 29 | + |
4 | 30 | describe.each([ |
5 | 31 | ["Gemini API", geminiModels["gemini-3.7-flash"]], |
6 | 32 | ["Vertex AI", vertexModels["gemini-3.7-flash"]], |
|
0 commit comments