All files / src/pages/flowsheet-page/economics/comparison-panel comparisonFormatters.ts

55.55% Statements 5/9
33.33% Branches 2/6
100% Functions 0/0
71.42% Lines 5/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29                                      42x 42x 42x       42x 42x    
import { ComparisonStatus } from "@/api/apiStore.gen";
 
export function comparisonStatusLabel(status: ComparisonStatus) {
  const labels: Record<ComparisonStatus, string> = {
    [ComparisonStatus.Baseline]: "Baseline",
    [ComparisonStatus.BaselineNotApplicable]: "Baseline reference",
    [ComparisonStatus.Comparable]: "",
    [ComparisonStatus.MissingResult]: "No result",
    [ComparisonStatus.MissingMetric]: "Metric unavailable",
    [ComparisonStatus.MissingBaseline]: "Baseline unavailable",
    [ComparisonStatus.RecalculationUnavailable]: "Recalculation unavailable",
    [ComparisonStatus.ZeroBaseline]: "Baseline is zero",
    [ComparisonStatus.UnitMismatch]: "Unit mismatch",
    [ComparisonStatus.Unavailable]: "Study unavailable",
  };
  return labels[status] ?? "";
}
 
export function formatPercentageDifference(value: string) {
  const parsed = Number(value);
  Iif (!Number.isFinite(parsed)) return value;
  const formatted = new Intl.NumberFormat("en-NZ", {
    maximumFractionDigits: 2,
    minimumFractionDigits: 2,
  }).format(Math.abs(parsed));
  Iif (parsed === 0) return "0.00%";
  return `${parsed > 0 ? "+" : "-"}${formatted}%`;
}