HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RImmers2/portal.photomenu.nl/wwwroot/node_modules/modelo/benchmarks/print.js
/*jslint node: true, indent: 2, passfail: true */
"use strict";

var Table = require('cli-table');

function percentDifference(a, b) {
  return ((a - b) / ((a + b) / 2)) * 100;
}

function print() {
  var headers = ["Name", "Mean", "Variance", "% Error", "% Slower"],
    t = new Table({"head": headers}),
    precision = 5,
    results,
    fastest;

  results = this.filter('successful').map(function (item) {
    return {
      "name": item.name,
      "mean": item.stats.mean,
      "variance": item.stats.variance,
      "moe": item.stats.moe,
      "rme": item.stats.rme
    };
  }).sort(function (a, b) {
    return a.mean + a.moe > b.mean + b.moe;
  });

  fastest = results[0];
  results.forEach(function (item) {
    var diff = percentDifference(
      item.mean + item.moe,
      fastest.mean + fastest.moe
    );
    t.push([
      item.name,
      item.mean.toPrecision(precision),
      item.variance.toPrecision(precision),
      item.rme.toPrecision(precision) + ' %',
      diff.toPrecision(precision) + ' %'
    ]);
  });
  process.stdout.write("\n");
  process.stdout.write(String(this.name) + ":\n");
  process.stdout.write(t.toString());
  process.stdout.write("\n");
}

module.exports = print;