test: add regression test for double counting bug (#21053)
This commit is contained in:
@@ -1080,7 +1080,7 @@ describe("session.getUsage", () => {
|
|||||||
expect(result.tokens.cache.read).toBe(200)
|
expect(result.tokens.cache.read).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("handles reasoning tokens", () => {
|
test("separates reasoning tokens from output tokens", () => {
|
||||||
const model = createModel({ context: 100_000, output: 32_000 })
|
const model = createModel({ context: 100_000, output: 32_000 })
|
||||||
const result = Session.getUsage({
|
const result = Session.getUsage({
|
||||||
model,
|
model,
|
||||||
@@ -1092,7 +1092,35 @@ describe("session.getUsage", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
expect(result.tokens.input).toBe(1000)
|
||||||
|
expect(result.tokens.output).toBe(400)
|
||||||
expect(result.tokens.reasoning).toBe(100)
|
expect(result.tokens.reasoning).toBe(100)
|
||||||
|
expect(result.tokens.total).toBe(1500)
|
||||||
|
})
|
||||||
|
|
||||||
|
test("does not double count reasoning tokens in cost", () => {
|
||||||
|
const model = createModel({
|
||||||
|
context: 100_000,
|
||||||
|
output: 32_000,
|
||||||
|
cost: {
|
||||||
|
input: 0,
|
||||||
|
output: 15,
|
||||||
|
cache: { read: 0, write: 0 },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
const result = Session.getUsage({
|
||||||
|
model,
|
||||||
|
usage: {
|
||||||
|
inputTokens: 0,
|
||||||
|
outputTokens: 1_000_000,
|
||||||
|
totalTokens: 1_000_000,
|
||||||
|
reasoningTokens: 250_000,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.tokens.output).toBe(750_000)
|
||||||
|
expect(result.tokens.reasoning).toBe(250_000)
|
||||||
|
expect(result.cost).toBe(15)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("handles undefined optional values gracefully", () => {
|
test("handles undefined optional values gracefully", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user