chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import { describe, it } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { loadCorpus, hashCorpus } from "../../../open-sse/services/compression/eval/corpus.ts";
|
||||
import type { EvalCase } from "../../../open-sse/services/compression/eval/types.ts";
|
||||
|
||||
const cases: EvalCase[] = [
|
||||
{ id: "a", kind: "prose", context: "hello world", question: "what is it?" },
|
||||
{ id: "b", kind: "code", context: "function f(){return 1}", question: "what does f return?", gold: "1" },
|
||||
];
|
||||
|
||||
describe("eval corpus loader", () => {
|
||||
it("loads valid cases unchanged", () => {
|
||||
const loaded = loadCorpus(cases);
|
||||
assert.equal(loaded.length, 2);
|
||||
assert.equal(loaded[1].gold, "1");
|
||||
});
|
||||
|
||||
it("rejects a case missing required fields", () => {
|
||||
assert.throws(() => loadCorpus([{ id: "x", kind: "prose", context: "", question: "q" } as EvalCase]));
|
||||
});
|
||||
|
||||
it("rejects a captured case with an obvious PII marker (email)", () => {
|
||||
assert.throws(() =>
|
||||
loadCorpus([{ id: "p", kind: "logs", context: "user alice@example.com failed", question: "who?", captured: true }])
|
||||
);
|
||||
});
|
||||
|
||||
it("allows a curated seed case even if it contains an email-like token (curated is vetted)", () => {
|
||||
const loaded = loadCorpus([{ id: "s", kind: "logs", context: "noreply@x.test sent", question: "who?", captured: false }]);
|
||||
assert.equal(loaded.length, 1);
|
||||
});
|
||||
|
||||
it("hashCorpus is stable and order-independent over case ids", () => {
|
||||
const h1 = hashCorpus(cases);
|
||||
const h2 = hashCorpus([cases[1], cases[0]]);
|
||||
assert.equal(h1, h2);
|
||||
assert.match(h1, /^[0-9a-f]{64}$/);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user