printSummery method

Future<void> printSummery()

Implementation

Future<void> printSummery() async {
  final len = benches.length;
  ansiColorDisabled = false;
  AnsiPen greenPen = AnsiPen()..xterm(option.emphasisAnsiColor);

  if (len > 1) {
    debugPrint(
      TextUtil.addHyphen('summary ', option.maxLineCharNum),
    );
    debugPrint('⭐: ${greenPen(benches.first.name)} is the fastest!');

    for (int i = 1; i < len; i++) {
      final benchText =
          (benches[i].average / benches.first.average).toStringAsFixed(2);

      debugPrint(
          '     ${greenPen(benchText)} x faster than ${greenPen(benches[i].name)}');
    }

    debugPrint('');
    debugPrint(
      TextUtil.addHyphen('📊: bar chart ', option.maxLineCharNum),
    );

    for (int i = 0; i < len; i++) {
      final name = TextUtil.align(
          benches[i].name, (option.maxLineCharNum / 3).floor());
      final barVal = 1 / (benches.last.average / benches[i].average);
      final bar =
          List.filled((option.maxLineCharNum * (2 / 3) * barVal).floor(), ' ')
              .join();

      ansiColorDisabled = false;
      AnsiPen greenBg = AnsiPen()..xterm(option.barAnsiColor, bg: true);
      debugPrint('$name${greenBg(bar)}');
    }

    debugPrint(
      TextUtil.addHyphen('\n', option.maxLineCharNum),
    );
  }
}