Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / @protobufjs / float / bench / suite.js
diff --git a/legacy-libs/@protobufjs/float/bench/suite.js b/legacy-libs/@protobufjs/float/bench/suite.js
new file mode 100644 (file)
index 0000000..3820579
--- /dev/null
@@ -0,0 +1,46 @@
+"use strict";\r
+module.exports = newSuite;\r
+\r
+var benchmark = require("benchmark"),\r
+    chalk     = require("chalk");\r
+\r
+var padSize = 27;\r
+\r
+function newSuite(name) {\r
+    var benches = [];\r
+    return new benchmark.Suite(name)\r
+    .on("add", function(event) {\r
+        benches.push(event.target);\r
+    })\r
+    .on("start", function() {\r
+        process.stdout.write("benchmarking " + name + " performance ...\n\n");\r
+    })\r
+    .on("cycle", function(event) {\r
+        process.stdout.write(String(event.target) + "\n");\r
+    })\r
+    .on("complete", function() {\r
+        if (benches.length > 1) {\r
+            var fastest = this.filter("fastest"), // eslint-disable-line no-invalid-this\r
+                fastestHz = getHz(fastest[0]);\r
+            process.stdout.write("\n" + chalk.white(pad(fastest[0].name, padSize)) + " was " + chalk.green("fastest") + "\n");\r
+            benches.forEach(function(bench) {\r
+                if (fastest.indexOf(bench) === 0)\r
+                    return;\r
+                var hz = hz = getHz(bench);\r
+                var percent = (1 - hz / fastestHz) * 100;\r
+                process.stdout.write(chalk.white(pad(bench.name, padSize)) + " was " + chalk.red(percent.toFixed(1) + "% slower") + "\n");\r
+            });\r
+        }\r
+        process.stdout.write("\n");\r
+    });\r
+}\r
+\r
+function getHz(bench) {\r
+    return 1 / (bench.stats.mean + bench.stats.moe);\r
+}\r
+\r
+function pad(str, len, l) {\r
+    while (str.length < len)\r
+        str = l ? str + " " : " " + str;\r
+    return str;\r
+}\r