test(search): strengthen stability test to detect broken tie-break
The "results are stable" test queried "budget", a single-match query, so the sort had nothing to reorder and would pass even with a broken or removed ascending-id tie-break. Switch to "muller", where docs 1 and 5 tie on score, so the assertion actually exercises the tie-break. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a630944a3c
commit
2b82800c23
@@ -77,8 +77,15 @@ describe("Search recall", () => {
|
||||
});
|
||||
|
||||
test("results are stable across repeated identical searches", () => {
|
||||
const first = rankRecords(CORPUS, "budget", FIELDS).map((r) => r.record.id);
|
||||
const second = rankRecords(CORPUS, "budget", FIELDS).map((r) => r.record.id);
|
||||
// Uses "muller" deliberately: docs 1 and 5 share the identical person
|
||||
// string, so both score exactly 0.33 and the ORDER is decided purely by
|
||||
// the ascending-id tie-break. A single-result query (e.g. "budget") would
|
||||
// pass this assertion even if the tie-break were removed entirely, since
|
||||
// a one-element array cannot be reordered.
|
||||
const first = rankRecords(CORPUS, "muller", FIELDS).map((r) => r.record.id);
|
||||
const second = rankRecords(CORPUS, "muller", FIELDS).map((r) => r.record.id);
|
||||
expect(first).toHaveLength(2);
|
||||
expect(first).toEqual([1, 5]);
|
||||
expect(first).toEqual(second);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user