chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
import { describe, it } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { getRulesForContext } from "../../../open-sse/services/compression/cavemanRules.ts";
|
||||
import { applyRulesToText } from "../../../open-sse/services/compression/caveman.ts";
|
||||
import { cavemanCompress } from "../../../open-sse/services/compression/caveman.ts";
|
||||
|
||||
describe("structural compression rules", () => {
|
||||
it("should simplify list conjunctions", () => {
|
||||
const rules = getRulesForContext("all").filter((r) => r.name === "list_conjunction");
|
||||
assert.ok(rules.length > 0);
|
||||
const { text } = applyRulesToText("handles routing, and also load balancing", rules);
|
||||
assert.ok(!text.includes("and also"));
|
||||
});
|
||||
|
||||
it("should simplify purpose phrases", () => {
|
||||
const rules = getRulesForContext("all").filter((r) => r.name === "purpose_phrases");
|
||||
assert.ok(rules.length > 0);
|
||||
const { text } = applyRulesToText("in order to fix this bug", rules);
|
||||
assert.ok(text.startsWith("to "));
|
||||
});
|
||||
|
||||
it("should simplify redundant quantifiers", () => {
|
||||
const rules = getRulesForContext("all").filter((r) => r.name === "redundant_quantifiers");
|
||||
assert.ok(rules.length > 0);
|
||||
const { text } = applyRulesToText("each and every item", rules);
|
||||
assert.ok(text.includes("each"));
|
||||
assert.ok(!text.includes("every"));
|
||||
});
|
||||
|
||||
it("should replace verbose connectors with 'also'", () => {
|
||||
const rules = getRulesForContext("all").filter((r) => r.name === "verbose_connectors");
|
||||
assert.ok(rules.length > 0);
|
||||
const { text } = applyRulesToText("furthermore, this handles caching", rules);
|
||||
assert.ok(text.startsWith("also"));
|
||||
});
|
||||
|
||||
it("should remove emphasis adverbs", () => {
|
||||
const rules = getRulesForContext("all").filter((r) => r.name === "emphasis_removal");
|
||||
assert.ok(rules.length > 0);
|
||||
const { text } = applyRulesToText("this is very important", rules);
|
||||
assert.ok(!text.includes("very"));
|
||||
assert.ok(text.includes("important"));
|
||||
});
|
||||
|
||||
it("should convert passive voice to active", () => {
|
||||
const rules = getRulesForContext("all").filter((r) => r.name === "passive_voice");
|
||||
assert.ok(rules.length > 0);
|
||||
const { text } = applyRulesToText("The function is being used throughout the app", rules);
|
||||
assert.ok(text.includes("uses"));
|
||||
});
|
||||
|
||||
it("should apply combined structural compression", () => {
|
||||
const body = {
|
||||
messages: [
|
||||
{
|
||||
role: "user",
|
||||
content:
|
||||
"I need you to provide a detailed analysis of the routing system. Furthermore, I would like you to explain each and every component in order to understand how they work together. Thank you so much!",
|
||||
},
|
||||
],
|
||||
};
|
||||
const result = cavemanCompress(body, {
|
||||
enabled: true,
|
||||
compressRoles: ["user"],
|
||||
skipRules: [],
|
||||
minMessageLength: 50,
|
||||
preservePatterns: [],
|
||||
});
|
||||
assert.equal(result.compressed, true);
|
||||
assert.ok(
|
||||
result.stats.savingsPercent > 10,
|
||||
`Expected meaningful savings, got ${result.stats.savingsPercent}%`
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user