(tk, c, unit)
| 492 | // Correctness is assumed by default: a correct cell shows only its time, and a |
| 493 | // quality mark appears only when the result is NOT fully correct. |
| 494 | function combinedCell(tk, c, unit) { |
| 495 | const m = matrix[c.id][tk]; |
| 496 | if (!m) return '—'; |
| 497 | const vd = m.verdict, r = m.res; |
| 498 | if (vd.v === 'unsupported') return '—'; |
| 499 | if (vd.v === 'unevaluated') return '∅'; |
| 500 | if (vd.v === 'timeout') return '⏱'; |
| 501 | if (vd.v === 'error') return '⚠️'; |
| 502 | const t = (r && r.status === 'ok' && typeof r.timeMs === 'number') ? fmtBy(r.timeMs, unit) : null; |
| 503 | if (vd.v === 'correct') return t ?? '✓'; |
| 504 | const note = abbrev(vd.note); |
| 505 | return SYM[vd.v] + (note ? ` <sub>${note}</sub>` : '') + (t ? ` ${t}` : ''); |
| 506 | } |
| 507 | // A "CE outlier" worth flagging: the shipping build (CE·cur) is either not |
| 508 | // correct, or correct but markedly slower than the fastest competitor here. |
| 509 | function ceOutlier(c) { |
no test coverage detected