mirror of
https://github.com/apple/pkl.git
synced 2026-04-11 03:06:55 +02:00
Don't show 100% when number of failures is rounded up (#1110)
Co-Authored-By: Mike Drob <mdrob@apple.com>
This commit is contained in:
@@ -17,6 +17,8 @@ package org.pkl.core.stdlib.test.report;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -140,16 +142,18 @@ public final class SimpleReport implements TestReport {
|
||||
private void makeStatsLine(
|
||||
AnsiStringBuilder sb, String kind, int total, int failed, boolean isFailed) {
|
||||
var passed = total - failed;
|
||||
var passRate = total > 0 ? 100.0 * passed / total : 0.0;
|
||||
var passRate = "0.0";
|
||||
if (total > 0) {
|
||||
var passedDecimal = new BigDecimal(passed);
|
||||
var hundred = new BigDecimal(100);
|
||||
var totalPrecise = new BigDecimal(total);
|
||||
passRate =
|
||||
hundred.multiply(passedDecimal).divide(totalPrecise, 1, RoundingMode.DOWN).toString();
|
||||
}
|
||||
var passRateLine = String.format(Locale.ROOT, "%s%% %s pass", passRate, kind);
|
||||
|
||||
var color = isFailed ? AnsiCode.RED : AnsiCode.GREEN;
|
||||
sb.append(
|
||||
color,
|
||||
() ->
|
||||
sb.append(String.format(Locale.ROOT, "%.1f%%", passRate))
|
||||
.append(" ")
|
||||
.append(kind)
|
||||
.append(" pass"));
|
||||
sb.append(color, () -> sb.append(passRateLine));
|
||||
|
||||
if (isFailed) {
|
||||
sb.append(" [").append(failed).append('/').append(total).append(" failed]");
|
||||
|
||||
Reference in New Issue
Block a user