build(deps-dev): apply updates
[benchmarks-js.git] / quick-select.mjs
index 6e5706db4b9be9400a223f975eadf42bcf623ba0..49dc7057b5c70d30ad5894169cabfd02df409516 100644 (file)
@@ -1,5 +1,6 @@
-import Benchmark from 'benny'
-import { generateRandomInteger } from './benchmark-utils.mjs'
+import { randomInt } from 'node:crypto'
+
+import { bench, group, run } from 'tatami-ng'
 
 /**
  * @param numberOfWorkers
@@ -12,7 +13,7 @@ function generateRandomTasksMap (
 ) {
   const tasksArray = []
   for (let i = 0; i < numberOfWorkers; i++) {
-    const task = [i, generateRandomInteger(maxNumberOfTasksPerWorker)]
+    const task = [i, randomInt(maxNumberOfTasksPerWorker)]
     tasksArray.push(task)
   }
   return new Map(tasksArray)
@@ -63,7 +64,7 @@ const defaultPivotIndexSelect = (leftIndex, rightIndex) => {
 }
 
 const randomPivotIndexSelect = (leftIndex, rightIndex) => {
-  return generateRandomInteger(rightIndex, leftIndex)
+  return randomInt(leftIndex, rightIndex)
 }
 
 /**
@@ -227,43 +228,27 @@ function quickSelectRecursionRandomPivot (tasksMap) {
   )
 }
 
-Benchmark.suite(
-  'Quick select',
-  Benchmark.add('Loop select', () => {
+group('Quick select', () => {
+  bench('Loop select', () => {
     loopSelect(tasksMap)
-  }),
-  Benchmark.add('Array sort select', () => {
+  })
+  bench('Array sort select', () => {
     arraySortSelect(tasksMap)
-  }),
-  Benchmark.add('Quick select loop', () => {
+  })
+  bench('Quick select loop', () => {
     quickSelectLoop(tasksMap)
-  }),
-  Benchmark.add('Quick select loop with random pivot', () => {
+  })
+  bench('Quick select loop with random pivot', () => {
     quickSelectLoopRandomPivot(tasksMap)
-  }),
-  Benchmark.add('Quick select recursion', () => {
+  })
+  bench('Quick select recursion', () => {
     quickSelectRecursion(tasksMap)
-  }),
-  Benchmark.add('Quick select recursion with random pivot', () => {
+  })
+  bench('Quick select recursion with random pivot', () => {
     quickSelectRecursionRandomPivot(tasksMap)
-  }),
-  Benchmark.cycle(),
-  Benchmark.complete(),
-  Benchmark.save({
-    file: 'quick-select',
-    format: 'json',
-    details: true
-  }),
-  Benchmark.save({
-    file: 'quick-select',
-    format: 'chart.html',
-    details: true
-  }),
-  Benchmark.save({
-    file: 'quick-select',
-    format: 'table.html',
-    details: true
   })
-).catch(err => {
-  console.error(err)
+})
+
+await run({
+  units: true
 })