// tests/gold_core.test.mjs import { describe, it, expect } from 'vitest'; import { buildGold } from '../src/gold/gold_core.mjs'; describe('gold_core.mjs', () => { it('selects top K by score', () => { const results = [ { ok: true, score: 9.1, sample: { parsed: { answer: "A" } } }, { ok: true, score: 5.0, sample: { parsed: { answer: "B" } } }, { ok: true, score: 8.3, sample: { parsed: { answer: "C" } } } ]; const gold = buildGold(results, 2); // Check ordering expect(gold.length).toBe(2); expect(gold[0].answer).toBe("A"); expect(gold[1].answer).toBe("C"); }); it('deduplicates identical answers', () => { const results = [ { ok: true, score: 9.1, sample: { parsed: { answer: "A" } } }, { ok: true, score: 8.9, sample: { parsed: { answer: "A" } } } // duplicate ]; const gold = buildGold(results, 10); expect(gold.length).toBe(1); expect(gold[0].answer).toBe("A"); }); it('ignores non-ok samples', () => { const results = [ { ok: true, score: 9, sample: { parsed: { answer: "X" } } }, { ok: false, score: -1, sample: { parsed: { answer: "Y" } } } ]; const gold = buildGold(results, 10); expect(gold.length).toBe(1); expect(gold[0].answer).toBe("X"); }); });