2023-10-14 19:38:17 +09:00
|
|
|
/* eslint-disable import/no-commonjs */
|
|
|
|
|
2023-10-13 19:11:29 +09:00
|
|
|
import { createRequire } from "module";
|
|
|
|
import fs from "fs";
|
2014-05-29 23:46:23 +09:00
|
|
|
|
2023-10-13 19:11:29 +09:00
|
|
|
const require = createRequire(import.meta.url);
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const ttest = require("ttest");
|
2014-05-29 23:46:23 +09:00
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
|
2014-05-29 23:46:23 +09:00
|
|
|
|
|
|
|
function parseOptions() {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const yargs = require("yargs")
|
2014-05-29 23:46:23 +09:00
|
|
|
.usage(
|
|
|
|
"Compare the results of two stats files.\n" +
|
|
|
|
"Usage:\n $0 <BASELINE> <CURRENT> [options]"
|
|
|
|
)
|
|
|
|
.demand(2)
|
|
|
|
.string(["groupBy"])
|
|
|
|
.describe(
|
|
|
|
"groupBy",
|
|
|
|
"How statistics should grouped. Valid options: " +
|
|
|
|
VALID_GROUP_BYS.join(" ")
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
)
|
2014-05-29 23:46:23 +09:00
|
|
|
.default("groupBy", "browser,stat");
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const result = yargs.argv;
|
2014-05-29 23:46:23 +09:00
|
|
|
result.baseline = result._[0];
|
|
|
|
result.current = result._[1];
|
|
|
|
if (result.groupBy) {
|
|
|
|
result.groupBy = result.groupBy.split(/[;, ]+/);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
function group(stats, groupBy) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const vals = [];
|
2022-07-17 22:48:39 +09:00
|
|
|
for (const curStat of stats) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const keyArr = [];
|
2022-07-17 22:48:39 +09:00
|
|
|
for (const entry of groupBy) {
|
|
|
|
keyArr.push(curStat[entry]);
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const key = keyArr.join(",");
|
2022-07-17 22:48:39 +09:00
|
|
|
(vals[key] ||= []).push(curStat.time);
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
return vals;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Flatten the stats so that there's one row per stats entry.
|
|
|
|
* Also, if results are not grouped by 'stat', keep only 'Overall' results.
|
|
|
|
*/
|
|
|
|
function flatten(stats) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
let rows = [];
|
2020-04-14 19:28:14 +09:00
|
|
|
stats.forEach(function (curStat) {
|
2020-04-17 19:06:27 +09:00
|
|
|
curStat.stats.forEach(function (s) {
|
2014-05-29 23:46:23 +09:00
|
|
|
rows.push({
|
2020-04-17 19:06:27 +09:00
|
|
|
browser: curStat.browser,
|
|
|
|
page: curStat.page,
|
|
|
|
pdf: curStat.pdf,
|
|
|
|
round: curStat.round,
|
|
|
|
stat: s.name,
|
|
|
|
time: s.end - s.start,
|
2014-05-29 23:46:23 +09:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
// Use only overall results if not grouped by 'stat'
|
2019-01-18 23:05:23 +09:00
|
|
|
if (!options.groupBy.includes("stat")) {
|
2020-04-14 19:28:14 +09:00
|
|
|
rows = rows.filter(function (s) {
|
2017-02-03 20:58:08 +09:00
|
|
|
return s.stat === "Overall";
|
|
|
|
});
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
return rows;
|
|
|
|
}
|
|
|
|
|
|
|
|
function pad(s, length, dir /* default: 'right' */) {
|
|
|
|
s = "" + s;
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const spaces = new Array(Math.max(0, length - s.length + 1)).join(" ");
|
2014-05-29 23:46:23 +09:00
|
|
|
return dir === "left" ? spaces + s : s + spaces;
|
|
|
|
}
|
|
|
|
|
|
|
|
function mean(array) {
|
|
|
|
function add(a, b) {
|
|
|
|
return a + b;
|
|
|
|
}
|
|
|
|
return array.reduce(add, 0) / array.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Comparator for row key sorting. */
|
|
|
|
function compareRow(a, b) {
|
|
|
|
a = a.split(",");
|
|
|
|
b = b.split(",");
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
for (let i = 0; i < Math.min(a.length, b.length); i++) {
|
|
|
|
const intA = parseInt(a[i], 10);
|
|
|
|
const intB = parseInt(b[i], 10);
|
|
|
|
const ai = isNaN(intA) ? a[i] : intA;
|
|
|
|
const bi = isNaN(intB) ? b[i] : intB;
|
2014-05-29 23:46:23 +09:00
|
|
|
if (ai < bi) {
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (ai > bi) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Dump various stats in a table to compare the baseline and current results.
|
|
|
|
* T-test Refresher:
|
|
|
|
* If I understand t-test correctly, p is the probability that we'll observe
|
|
|
|
* another test that is as extreme as the current result assuming the null
|
|
|
|
* hypothesis is true. P is NOT the probability of the null hypothesis. The null
|
|
|
|
* hypothesis in this case is that the baseline and current results will be the
|
|
|
|
* same. It is generally accepted that you can reject the null hypothesis if the
|
|
|
|
* p-value is less than 0.05. So if p < 0.05 we can reject the results are the
|
|
|
|
* same which doesn't necessarily mean the results are faster/slower but it can
|
|
|
|
* be implied.
|
|
|
|
*/
|
|
|
|
function stat(baseline, current) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const baselineGroup = group(baseline, options.groupBy);
|
|
|
|
const currentGroup = group(current, options.groupBy);
|
2014-05-29 23:46:23 +09:00
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const keys = Object.keys(baselineGroup);
|
2014-05-29 23:46:23 +09:00
|
|
|
keys.sort(compareRow);
|
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const labels = options.groupBy.slice(0);
|
2014-05-29 23:46:23 +09:00
|
|
|
labels.push("Count", "Baseline(ms)", "Current(ms)", "+/-", "% ");
|
|
|
|
if (ttest) {
|
|
|
|
labels.push("Result(P<.05)");
|
|
|
|
}
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const rows = [];
|
2014-05-29 23:46:23 +09:00
|
|
|
// collect rows and measure column widths
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const width = labels.map(function (s) {
|
2017-02-03 20:58:08 +09:00
|
|
|
return s.length;
|
|
|
|
});
|
2014-05-29 23:46:23 +09:00
|
|
|
rows.push(labels);
|
2022-07-17 22:48:39 +09:00
|
|
|
for (const key of keys) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const baselineMean = mean(baselineGroup[key]);
|
|
|
|
const currentMean = mean(currentGroup[key]);
|
|
|
|
const row = key.split(",");
|
2014-05-29 23:46:23 +09:00
|
|
|
row.push(
|
|
|
|
"" + baselineGroup[key].length,
|
|
|
|
"" + Math.round(baselineMean),
|
|
|
|
"" + Math.round(currentMean),
|
|
|
|
"" + Math.round(currentMean - baselineMean),
|
|
|
|
((100 * (currentMean - baselineMean)) / baselineMean).toFixed(2)
|
|
|
|
);
|
|
|
|
if (ttest) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const p =
|
2014-05-29 23:46:23 +09:00
|
|
|
baselineGroup[key].length < 2
|
|
|
|
? 1
|
|
|
|
: ttest(baselineGroup[key], currentGroup[key]).pValue();
|
|
|
|
if (p < 0.05) {
|
|
|
|
row.push(currentMean < baselineMean ? "faster" : "slower");
|
|
|
|
} else {
|
|
|
|
row.push("");
|
|
|
|
}
|
|
|
|
}
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
for (let i = 0; i < row.length; i++) {
|
2014-05-29 23:46:23 +09:00
|
|
|
width[i] = Math.max(width[i], row[i].length);
|
|
|
|
}
|
|
|
|
rows.push(row);
|
|
|
|
}
|
|
|
|
|
|
|
|
// add horizontal line
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const hline = width.map(function (w) {
|
2017-02-03 20:58:08 +09:00
|
|
|
return new Array(w + 1).join("-");
|
|
|
|
});
|
2014-05-29 23:46:23 +09:00
|
|
|
rows.splice(1, 0, hline);
|
|
|
|
|
|
|
|
// print output
|
|
|
|
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const groupCount = options.groupBy.length;
|
2022-07-17 22:48:39 +09:00
|
|
|
for (const row of rows) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
for (let i = 0; i < row.length; i++) {
|
2014-05-29 23:46:23 +09:00
|
|
|
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
|
|
|
|
}
|
|
|
|
console.log(row.join(" | "));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function main() {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
let baseline, current;
|
2014-05-29 23:46:23 +09:00
|
|
|
try {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const baselineFile = fs.readFileSync(options.baseline).toString();
|
2014-05-29 23:46:23 +09:00
|
|
|
baseline = flatten(JSON.parse(baselineFile));
|
2016-12-13 04:18:48 +09:00
|
|
|
} catch (e) {
|
2014-05-29 23:46:23 +09:00
|
|
|
console.log('Error reading file "' + options.baseline + '": ' + e);
|
|
|
|
process.exit(0);
|
|
|
|
}
|
|
|
|
try {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const currentFile = fs.readFileSync(options.current).toString();
|
2014-05-29 23:46:23 +09:00
|
|
|
current = flatten(JSON.parse(currentFile));
|
2016-12-13 04:18:48 +09:00
|
|
|
} catch (e) {
|
2014-05-29 23:46:23 +09:00
|
|
|
console.log('Error reading file "' + options.current + '": ' + e);
|
|
|
|
process.exit(0);
|
|
|
|
}
|
|
|
|
stat(baseline, current);
|
|
|
|
}
|
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const options = parseOptions();
|
2014-05-29 23:46:23 +09:00
|
|
|
main();
|