Skip to content

Commit 4e71a70

Browse files
committed
P0-D: Add empty-corpus and topK coverage to Cortex query tests (issue #21)
1 parent 6db973e commit 4e71a70

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

tests/cortex/Query.test.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,4 +215,54 @@ describe("cortex query (minimal)", () => {
215215
expect(result.scores[i]).toBeLessThanOrEqual(result.scores[i - 1]);
216216
}
217217
});
218+
219+
it("respects the topK parameter", async () => {
220+
const metadataStore = await IndexedDbMetadataStore.open(freshDbName());
221+
const vectorStore = new MemoryVectorStore();
222+
const keyPair = await generateKeyPair();
223+
224+
const backend = new DeterministicDummyEmbeddingBackend({ dimension: 4 });
225+
const vectorBackend = new TestVectorBackend();
226+
227+
const runner = new EmbeddingRunner(async () => ({
228+
backend,
229+
selectedKind: "dummy" as const,
230+
reason: "forced" as const,
231+
supportedKinds: ["dummy" as const],
232+
measurements: [],
233+
}));
234+
235+
const profile: ModelProfile = {
236+
modelId: "test-model",
237+
embeddingDimension: 4,
238+
contextWindowTokens: 64,
239+
truncationTokens: 48,
240+
maxChunkTokens: 5,
241+
source: "metadata",
242+
};
243+
244+
const text = "One two three four five six seven eight nine ten.";
245+
const ingestResult = await ingestText(text, {
246+
modelProfile: profile,
247+
embeddingRunner: runner,
248+
vectorStore,
249+
metadataStore,
250+
keyPair,
251+
});
252+
253+
expect(ingestResult.pages.length).toBeGreaterThanOrEqual(2);
254+
255+
const result = await query("one", {
256+
modelProfile: profile,
257+
embeddingRunner: runner,
258+
vectorStore,
259+
metadataStore,
260+
vectorBackend,
261+
topK: 2,
262+
});
263+
264+
expect(result.pages.length).toBe(2);
265+
expect(result.scores.length).toBe(2);
266+
expect(result.metadata.returned).toBe(2);
267+
});
218268
});

0 commit comments

Comments
 (0)