${backend} ${statusText(row)}
- ${thumb(row.actualRel, "actual")}
- ${thumb(row.goldenRel, "golden")}
- ${thumb(row.diffRel, "diff")}
+ ${thumb(row.actualSrc, "actual")}
+ ${thumb(row.goldenSrc, "golden")}
+ ${thumb(row.diffSrc, "diff")}
`;
};
@@ -347,10 +335,12 @@ async function renderHtml(rows, outputDir, title, groupLabel, htmlName) {
const passed = groupCells.filter((row) => row.status === "PASS").length;
const failed = groupCells.filter((row) => row.status === "FAIL").length;
const noResult = groupCells.filter((row) => row.status !== "PASS" && row.status !== "FAIL").length;
+ const passRateDenominator = passed + failed;
+ const passRate = passRateDenominator === 0 ? "0.0%" : `${(passed * 100 / passRateDenominator).toFixed(1)}%`;
return `
${htmlEscape(title)} - ${htmlEscape(group)}
- Each backend cell shows actual / golden / diff. Failed cases are red; absent results are orange; incomplete image sets get an orange notch.
PASS ${passed}, FAIL ${failed}, NO RESULT ${noResult}.
+ Each backend cell shows actual / golden / diff. Failed cases are red; absent results are orange; incomplete image sets get an orange notch.
PASS ${passed}, FAIL ${failed}, NO RESULT ${noResult}, PASS RATE ${passRate}.