diff --git a/kipina-codebench/benchmark.mjs b/kipina-codebench/benchmark.mjs index 288461a..1ffaf81 100644 --- a/kipina-codebench/benchmark.mjs +++ b/kipina-codebench/benchmark.mjs @@ -432,6 +432,24 @@ async function main() { console.log(` → ${status} | ${r.stars} ${r.score}p | ${(r.totalDurationMs/1000).toFixed(1)}s | ${r.totalTokens} tok | ${r.avgTokPerSec.toFixed(1)} tok/s${ctxInfo}`); } } + // Väliraportti kierroksen jälkeen + if (ROUNDS > 1) { + const median = arr => { const s = [...arr].sort((a,b) => a-b); const m = Math.floor(s.length/2); return s.length % 2 ? s[m] : Math.round((s[m-1]+s[m])/2); }; + console.log(`\n┌─── Tilanne kierroksen ${round}/${ROUNDS} jälkeen ───┐`); + for (const model of [...new Set(results.map(r => r.model))]) { + const mrs = results.filter(r => r.model === model); + for (const sid of scenarios.map(s => s.id)) { + const runs = mrs.filter(r => r.scenario === sid); + if (runs.length === 0) continue; + const scores = runs.map(r => r.score); + const med = median(scores); + const last = scores[scores.length - 1]; + const trend = scores.length > 1 ? (last > scores[scores.length - 2] ? '▲' : last < scores[scores.length - 2] ? '▼' : '─') : ''; + console.log(`│ ${model.padEnd(28)} ${sid.padEnd(7)} ${starsForScore(med)} med:${String(med).padStart(3)}p [${scores.join(',')}] ${trend}`); + } + } + console.log(`└${'─'.repeat(45)}┘`); + } } // rounds // === Tulostaulu ===