tests / budget.test.ts
tests / budget.test.ts
import { describe, expect, test } from "vitest";
import { effectiveSizes, pickPromptVariant, SizeConfig } from "../src/budget";
const defaults: Omit<SizeConfig, "contextLength"> = {
keepRecentTokens: 6000,
chunkTokens: 16000,
reservedOutputTokens: 2000,
summarizerMaxTokens: 1500,
};
describe("effectiveSizes", () => {
test("ctx 2048: all four clamped to their floors-or-percentages", () => {
const out = effectiveSizes({ contextLength: 2048, ...defaults });
expect(out.keepRecentTokens).toBe(512);
expect(out.chunkTokens).toBe(1024); // floor (1024) beats 30% (614)
expect(out.reservedOutputTokens).toBe(512);
expect(out.summarizerMaxTokens).toBe(307);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"reservedOutputTokens",
"summarizerMaxTokens",
]);
});
test("ctx 4096 with defaults", () => {
const out = effectiveSizes({ contextLength: 4096, ...defaults });
expect(out.keepRecentTokens).toBe(1024);
expect(out.chunkTokens).toBe(1228);
expect(out.reservedOutputTokens).toBe(1024);
expect(out.summarizerMaxTokens).toBe(614);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"reservedOutputTokens",
"summarizerMaxTokens",
]);
});
test("ctx 8192 with defaults: reservedOutputTokens cap (2048) >= configured (2000), not clamped", () => {
const out = effectiveSizes({ contextLength: 8192, ...defaults });
expect(out.keepRecentTokens).toBe(2048);
expect(out.chunkTokens).toBe(2457);
expect(out.reservedOutputTokens).toBe(2000);
expect(out.summarizerMaxTokens).toBe(1228);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"summarizerMaxTokens",
]);
});
test("ctx 131072 with defaults: nothing clamped, values pass through", () => {
const out = effectiveSizes({ contextLength: 131072, ...defaults });
expect(out.keepRecentTokens).toBe(6000);
expect(out.chunkTokens).toBe(16000);
expect(out.reservedOutputTokens).toBe(2000);
expect(out.summarizerMaxTokens).toBe(1500);
expect(out.clamped).toEqual([]);
});
test("ctx undefined: pass-through, clamped empty", () => {
const out = effectiveSizes({ contextLength: undefined, ...defaults });
expect(out.keepRecentTokens).toBe(6000);
expect(out.chunkTokens).toBe(16000);
expect(out.reservedOutputTokens).toBe(2000);
expect(out.summarizerMaxTokens).toBe(1500);
expect(out.clamped).toEqual([]);
});
test("ctx <= 0 is treated like undefined: pass-through", () => {
const out = effectiveSizes({ contextLength: 0, ...defaults });
expect(out.clamped).toEqual([]);
expect(out.keepRecentTokens).toBe(6000);
const outNeg = effectiveSizes({ contextLength: -1, ...defaults });
expect(outNeg.clamped).toEqual([]);
});
test("a configured value below its cap is never raised", () => {
const out = effectiveSizes({
contextLength: 131072,
...defaults,
keepRecentTokens: 500,
});
expect(out.keepRecentTokens).toBe(500);
expect(out.clamped).not.toContain("keepRecentTokens");
});
test("floors: tiny ctx still yields at least the floors", () => {
const out = effectiveSizes({ contextLength: 1000, ...defaults });
expect(out.keepRecentTokens).toBe(512);
expect(out.chunkTokens).toBe(1024); // floor exceeds 30% of 1000
expect(out.reservedOutputTokens).toBe(256);
expect(out.summarizerMaxTokens).toBe(200);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"reservedOutputTokens",
"summarizerMaxTokens",
]);
});
});
describe("pickPromptVariant", () => {
test("forced modes win", () => {
expect(pickPromptVariant("full")).toBe("full");
expect(pickPromptVariant("compact")).toBe("compact");
});
test("auto always resolves to full (bench 2026-08-24: full beat compact at 3B and 18B)", () => {
expect(pickPromptVariant("auto")).toBe("full");
});
});
import { describe, expect, test } from "vitest";
import { effectiveSizes, pickPromptVariant, SizeConfig } from "../src/budget";
const defaults: Omit<SizeConfig, "contextLength"> = {
keepRecentTokens: 6000,
chunkTokens: 16000,
reservedOutputTokens: 2000,
summarizerMaxTokens: 1500,
};
describe("effectiveSizes", () => {
test("ctx 2048: all four clamped to their floors-or-percentages", () => {
const out = effectiveSizes({ contextLength: 2048, ...defaults });
expect(out.keepRecentTokens).toBe(512);
expect(out.chunkTokens).toBe(1024); // floor (1024) beats 30% (614)
expect(out.reservedOutputTokens).toBe(512);
expect(out.summarizerMaxTokens).toBe(307);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"reservedOutputTokens",
"summarizerMaxTokens",
]);
});
test("ctx 4096 with defaults", () => {
const out = effectiveSizes({ contextLength: 4096, ...defaults });
expect(out.keepRecentTokens).toBe(1024);
expect(out.chunkTokens).toBe(1228);
expect(out.reservedOutputTokens).toBe(1024);
expect(out.summarizerMaxTokens).toBe(614);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"reservedOutputTokens",
"summarizerMaxTokens",
]);
});
test("ctx 8192 with defaults: reservedOutputTokens cap (2048) >= configured (2000), not clamped", () => {
const out = effectiveSizes({ contextLength: 8192, ...defaults });
expect(out.keepRecentTokens).toBe(2048);
expect(out.chunkTokens).toBe(2457);
expect(out.reservedOutputTokens).toBe(2000);
expect(out.summarizerMaxTokens).toBe(1228);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"summarizerMaxTokens",
]);
});
test("ctx 131072 with defaults: nothing clamped, values pass through", () => {
const out = effectiveSizes({ contextLength: 131072, ...defaults });
expect(out.keepRecentTokens).toBe(6000);
expect(out.chunkTokens).toBe(16000);
expect(out.reservedOutputTokens).toBe(2000);
expect(out.summarizerMaxTokens).toBe(1500);
expect(out.clamped).toEqual([]);
});
test("ctx undefined: pass-through, clamped empty", () => {
const out = effectiveSizes({ contextLength: undefined, ...defaults });
expect(out.keepRecentTokens).toBe(6000);
expect(out.chunkTokens).toBe(16000);
expect(out.reservedOutputTokens).toBe(2000);
expect(out.summarizerMaxTokens).toBe(1500);
expect(out.clamped).toEqual([]);
});
test("ctx <= 0 is treated like undefined: pass-through", () => {
const out = effectiveSizes({ contextLength: 0, ...defaults });
expect(out.clamped).toEqual([]);
expect(out.keepRecentTokens).toBe(6000);
const outNeg = effectiveSizes({ contextLength: -1, ...defaults });
expect(outNeg.clamped).toEqual([]);
});
test("a configured value below its cap is never raised", () => {
const out = effectiveSizes({
contextLength: 131072,
...defaults,
keepRecentTokens: 500,
});
expect(out.keepRecentTokens).toBe(500);
expect(out.clamped).not.toContain("keepRecentTokens");
});
test("floors: tiny ctx still yields at least the floors", () => {
const out = effectiveSizes({ contextLength: 1000, ...defaults });
expect(out.keepRecentTokens).toBe(512);
expect(out.chunkTokens).toBe(1024); // floor exceeds 30% of 1000
expect(out.reservedOutputTokens).toBe(256);
expect(out.summarizerMaxTokens).toBe(200);
expect(out.clamped).toEqual([
"keepRecentTokens",
"chunkTokens",
"reservedOutputTokens",
"summarizerMaxTokens",
]);
});
});
describe("pickPromptVariant", () => {
test("forced modes win", () => {
expect(pickPromptVariant("full")).toBe("full");
expect(pickPromptVariant("compact")).toBe("compact");
});
test("auto always resolves to full (bench 2026-08-24: full beat compact at 3B and 18B)", () => {
expect(pickPromptVariant("auto")).toBe("full");
});
});