@agentica/core
Version:
Agentic AI Library specialized in LLM Function Calling
199 lines • 7.74 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ChatGptTokenUsageAggregator_1 = require("./ChatGptTokenUsageAggregator");
describe("chatGptTokenUsageAggregator", () => {
describe("sum", () => {
it("should sum basic token usage", () => {
const usage1 = {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
};
const usage2 = {
prompt_tokens: 20,
completion_tokens: 10,
total_tokens: 30,
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result).toEqual({
prompt_tokens: 30,
completion_tokens: 15,
total_tokens: 45,
completion_tokens_details: {
accepted_prediction_tokens: 0,
reasoning_tokens: 0,
rejected_prediction_tokens: 0,
},
prompt_tokens_details: {
audio_tokens: 0,
cached_tokens: 0,
},
});
});
it("should handle undefined values", () => {
const usage1 = {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
};
const usage2 = {
// @ts-expect-error - intended to be undefined
prompt_tokens: undefined,
// @ts-expect-error - intended to be undefined
completion_tokens: undefined,
// @ts-expect-error - intended to be undefined
total_tokens: undefined,
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result).toEqual({
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
completion_tokens_details: {
accepted_prediction_tokens: 0,
reasoning_tokens: 0,
rejected_prediction_tokens: 0,
},
prompt_tokens_details: {
audio_tokens: 0,
cached_tokens: 0,
},
});
});
it("should sum completion token details", () => {
const usage1 = {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
completion_tokens_details: {
accepted_prediction_tokens: 3,
reasoning_tokens: 1,
rejected_prediction_tokens: 1,
},
};
const usage2 = {
prompt_tokens: 20,
completion_tokens: 10,
total_tokens: 30,
completion_tokens_details: {
accepted_prediction_tokens: 7,
reasoning_tokens: 2,
rejected_prediction_tokens: 1,
},
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result.completion_tokens_details).toEqual({
accepted_prediction_tokens: 10,
reasoning_tokens: 3,
rejected_prediction_tokens: 2,
});
});
it("should handle undefined completion token details", () => {
const usage1 = {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
completion_tokens_details: {
accepted_prediction_tokens: 3,
reasoning_tokens: 1,
rejected_prediction_tokens: 1,
},
};
const usage2 = {
prompt_tokens: 20,
completion_tokens: 10,
total_tokens: 30,
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result.completion_tokens_details).toEqual({
accepted_prediction_tokens: 3,
reasoning_tokens: 1,
rejected_prediction_tokens: 1,
});
});
it("should sum prompt token details", () => {
const usage1 = {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
prompt_tokens_details: {
audio_tokens: 3,
cached_tokens: 2,
},
};
const usage2 = {
prompt_tokens: 20,
completion_tokens: 10,
total_tokens: 30,
prompt_tokens_details: {
audio_tokens: 7,
cached_tokens: 3,
},
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result.prompt_tokens_details).toEqual({
audio_tokens: 10,
cached_tokens: 5,
});
});
it("should handle undefined prompt token details", () => {
const usage1 = {
prompt_tokens: 10,
completion_tokens: 5,
total_tokens: 15,
prompt_tokens_details: {
audio_tokens: 3,
cached_tokens: 2,
},
};
const usage2 = {
prompt_tokens: 20,
completion_tokens: 10,
total_tokens: 30,
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result.prompt_tokens_details).toEqual({
audio_tokens: 3,
cached_tokens: 2,
});
});
it("should handle all undefined values", () => {
const usage1 = {
// @ts-expect-error - intended to be undefined
prompt_tokens: undefined,
// @ts-expect-error - intended to be undefined
completion_tokens: undefined,
// @ts-expect-error - intended to be undefined
total_tokens: undefined,
completion_tokens_details: undefined,
prompt_tokens_details: undefined,
};
const usage2 = {
// @ts-expect-error - intended to be undefined
prompt_tokens: undefined,
// @ts-expect-error - intended to be undefined
completion_tokens: undefined,
// @ts-expect-error - intended to be undefined
total_tokens: undefined,
completion_tokens_details: undefined,
prompt_tokens_details: undefined,
};
const result = ChatGptTokenUsageAggregator_1.ChatGptTokenUsageAggregator.sum(usage1, usage2);
expect(result).toEqual({
prompt_tokens: 0,
completion_tokens: 0,
total_tokens: 0,
completion_tokens_details: {
accepted_prediction_tokens: 0,
reasoning_tokens: 0,
rejected_prediction_tokens: 0,
},
prompt_tokens_details: {
audio_tokens: 0,
cached_tokens: 0,
},
});
});
});
});
//# sourceMappingURL=ChatGptTokenUsageAggregator.spec.js.map