File size: 604 Bytes
0fff343
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
 * Format a fitness / score value. Returns "—" for null, undefined, NaN,
 * or +/-Infinity so the UI never throws on degenerate programs.
 */
export function fmtFit(x: number | null | undefined, digits = 2): string {
  if (typeof x === "number" && Number.isFinite(x)) return x.toFixed(digits);
  return "—";
}

/** Numeric value to use for sort / colour when the raw fitness isn't
 * finite. Pushes degenerate programs to the bottom of any ranking. */
export function fitnessForOrder(x: number | null | undefined): number {
  return typeof x === "number" && Number.isFinite(x) ? x : -Infinity;
}