import assert from "node:assert/strict";
import { resolveAntigravityModelCost, STATIC_PROVIDER_MODELS } from "./models.js";
const cases: Array<[string, { input: number; output: number; cacheRead: number; cacheWrite: number }]> = [
// Static catalog models keep existing list prices
["gemini-3.7-flash-low", { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }],
["gemini-2.5-flash", { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }],
["gemini-2.5-pro", { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }],
["gemini-3.1-flash-lite", { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }],
["claude-opus-4-6-thinking", { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }],
["claude-sonnet-4-6", { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }],
["gpt-oss-120b-medium", { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }],
// Discovered models resolve to intended family list prices
["gemini-3.8-flash-low", { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }],
["gemini-3.8-flash-tiered", { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }],
["gemini-3.8-flash-lite", { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }],
["gemini-3.8-pro", { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }],
["claude-opus-4-7-thinking", { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }],
["claude-sonnet-4-7", { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }],
["claude-haiku-4-5", { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }],
// Unknown models fall through to zero
["unknown-model-xyz", { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }],
];
for (const [id, expected] of cases) {
const cost = resolveAntigravityModelCost(id);
assert.deepEqual(cost, expected, `Mismatch for ${id}`);
}
// Verify static provider configs retain identical costs
for (const model of STATIC_PROVIDER_MODELS) {
const expected = resolveAntigravityModelCost(model.id);
assert.deepEqual(model.cost, expected, `Mismatch in static provider model ${model.id}`);
}
console.log(`OK: verified ${cases.length} resolution cases and ${STATIC_PROVIDER_MODELS.length} static provider models`);