percentilesString property

String percentilesString

Implementation

String get percentilesString {
  final buf = StringBuffer();

  var printedPercentiles = <int, double>{};
  // Instead of 100 and 0 percentiles, which are often crazy outliers,
  // we show 2-sigma (95% confidence) percentiles.
  printedPercentiles[100] = with2StandardDeviations!.upper;
  for (var i = 95; i > 0; i -= 5) {
    printedPercentiles[i] = percentiles![i];
  }
  printedPercentiles[0] = with2StandardDeviations!.lower;

  final formatter = Formatter(printedPercentiles.values.toList());
  final longest = printedPercentiles.values
      .map(formatter.format)
      .map((s) => s.length)
      .reduce(max);
  for (final key in printedPercentiles.keys) {
    final value = printedPercentiles[key]!;
    if (key == 0) {
      buf.write('2.5 %'.padLeft(10));
    } else if (key == 100) {
      buf.write('97.5 %'.padLeft(10));
    } else {
      buf.write('$key %'.padLeft(10));
    }
    buf.write(' | ');
    buf.writeln(formatter.format(value).padLeft(longest));
  }

  return buf.toString();
}