Convert function to arrow function in UT
[poolifier.git] / benchmarks / internal / benchmark-utils.js
index cbf69307cdad7e5b07f5b8998099700ffafba2f7..debe0b1cea518fd43a53295322a314e6736c5999 100644 (file)
@@ -1,7 +1,7 @@
 async function runPoolifierTest (pool, { tasks, workerData }) {
   return new Promise((resolve, reject) => {
     let executions = 0
-    for (let i = 0; i <= tasks; i++) {
+    for (let i = 1; i <= tasks; i++) {
       pool
         .execute(workerData)
         .then(res => {
@@ -16,11 +16,44 @@ async function runPoolifierTest (pool, { tasks, workerData }) {
   })
 }
 
+function jsonIntegerSerialization (n) {
+  for (let i = 0; i < n; i++) {
+    const o = {
+      a: i
+    }
+    JSON.stringify(o)
+  }
+}
+
 function generateRandomInteger (max, min = 0) {
+  max = Math.floor(max)
   if (min) {
-    return Math.floor(Math.random() * (max - min + 1) + min)
+    min = Math.ceil(min)
+    return Math.floor(Math.random() * (max - min + 1)) + min
   }
-  return Math.floor(Math.random() * max + 1)
+  return Math.floor(Math.random() * (max + 1))
 }
 
-module.exports = { runPoolifierTest, generateRandomInteger }
+/**
+ * Intentionally inefficient implementation.
+ *
+ * @param {number} n
+ * @returns {number}
+ */
+function fibonacci (n) {
+  if (n <= 1) return 1
+  return fibonacci(n - 1) + fibonacci(n - 2)
+}
+
+const LIST_FORMATTER = new Intl.ListFormat('en-US', {
+  style: 'long',
+  type: 'conjunction'
+})
+
+module.exports = {
+  runPoolifierTest,
+  jsonIntegerSerialization,
+  generateRandomInteger,
+  fibonacci,
+  LIST_FORMATTER
+}