The scored result to print.
Optionallimit: numberRows to show in the merged and spread tables.
Nothing; writes to the console.
printFuzzProbe(scoreCorpus("acetone", corpus), 10);
export function printFuzzProbe(result: FuzzProbeResult, limit?: number): void {
const rows = resolveLimit(limit);
console.info(
`[fuzzTest] query="${result.query}" — ${result.corpusSize} cached titles, ${result.scorers.length} scorers`,
);
for (const name of result.scorers) {
console.groupCollapsed(`${name} — top ${result.byScorer[name].length}`);
console.table(
result.byScorer[name].map((row) => ({
score: row.score,
title: row.title,
supplier: row.supplier,
source: row.source,
})),
);
console.groupEnd();
}
console.groupCollapsed(`All titles × scorers (top ${rows} by average)`);
console.table(
result.byTitle
.map((row) => ({ title: row.title, supplier: row.supplier, ...row.scores }))
.slice(0, rows),
);
console.groupEnd();
console.groupCollapsed(`Biggest scorer disagreements (top ${rows})`);
console.table(result.spread.slice(0, rows));
console.groupEnd();
}
Prints a FuzzProbeResult as console tables: one ranked table per scorer, then the merged title-by-scorer matrix, then the biggest scorer disagreements.