test(danmaku): cover rankCandidates confidence paths
This commit is contained in:
parent
967ef58503
commit
5ce1f91a26
|
|
@ -29,4 +29,51 @@ describe("rankCandidates", () => {
|
||||||
const r = rankCandidates(list);
|
const r = rankCandidates(list);
|
||||||
expect(r.highConfidence).toBe(false);
|
expect(r.highConfidence).toBe(false);
|
||||||
});
|
});
|
||||||
|
it("empty candidates are not high confidence", () => {
|
||||||
|
const r = rankCandidates([]);
|
||||||
|
expect(r.highConfidence).toBe(false);
|
||||||
|
expect(r.candidates).toEqual([]);
|
||||||
|
});
|
||||||
|
it("score gap >= default lead (0.15) is high confidence", () => {
|
||||||
|
const list = [
|
||||||
|
{ episodeId: 2, animeId: 1, animeTitle: "Show", episodeTitle: null, imageUrl: "img" },
|
||||||
|
{ episodeId: 1, animeId: 1, animeTitle: "Show", episodeTitle: "01", imageUrl: null },
|
||||||
|
];
|
||||||
|
const r = rankCandidates(list);
|
||||||
|
expect(r.highConfidence).toBe(true);
|
||||||
|
expect(r.candidates[0]?.episodeId).toBe(1);
|
||||||
|
});
|
||||||
|
it("custom lead is honored", () => {
|
||||||
|
const list = [
|
||||||
|
{ episodeId: 2, animeId: 1, animeTitle: "Show", episodeTitle: null, imageUrl: "img" },
|
||||||
|
{ episodeId: 1, animeId: 1, animeTitle: "Show", episodeTitle: "01", imageUrl: null },
|
||||||
|
];
|
||||||
|
expect(rankCandidates(list, { lead: 0.5 }).highConfidence).toBe(false);
|
||||||
|
expect(rankCandidates(list, { lead: 0.3 }).highConfidence).toBe(true);
|
||||||
|
});
|
||||||
|
it("returns candidates sorted by score desc", () => {
|
||||||
|
const hi = {
|
||||||
|
episodeId: 1,
|
||||||
|
animeId: 1,
|
||||||
|
animeTitle: "A",
|
||||||
|
episodeTitle: "01",
|
||||||
|
imageUrl: "img",
|
||||||
|
};
|
||||||
|
const mid = {
|
||||||
|
episodeId: 2,
|
||||||
|
animeId: 1,
|
||||||
|
animeTitle: "B",
|
||||||
|
episodeTitle: "02",
|
||||||
|
imageUrl: null,
|
||||||
|
};
|
||||||
|
const low = {
|
||||||
|
episodeId: 3,
|
||||||
|
animeId: null,
|
||||||
|
animeTitle: null,
|
||||||
|
episodeTitle: null,
|
||||||
|
imageUrl: "x",
|
||||||
|
};
|
||||||
|
const r = rankCandidates([low, mid, hi]);
|
||||||
|
expect(r.candidates.map((c) => c.episodeId)).toEqual([1, 2, 3]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue