build(deps-dev): apply updates
[benchmarks-js.git] / min.mjs
diff --git a/min.mjs b/min.mjs
index 25618206a0e12514dbb665a2f468654d3ac34205..51ce4ce060d93d7c7b96245d763d8fee522d4616 100644 (file)
--- a/min.mjs
+++ b/min.mjs
@@ -1,4 +1,5 @@
-import Benchmark from 'benny'
+import { bench, group, run } from 'tatami-ng'
+
 import { generateRandomNumberArray } from './benchmark-utils.mjs'
 
 const size = 10000
@@ -10,7 +11,7 @@ const testArray = generateRandomNumberArray(size)
  * @returns
  */
 function loopMin (values) {
-  let minimum = Infinity
+  let minimum = Number.POSITIVE_INFINITY
   for (const value of values) {
     if (value < minimum) minimum = value
   }
@@ -25,7 +26,7 @@ function loopMin (values) {
 function reduceTernaryMin (values) {
   return values.reduce(
     (minimum, num) => (minimum < num ? minimum : num),
-    Infinity
+    Number.POSITIVE_INFINITY
   )
 }
 
@@ -35,7 +36,10 @@ function reduceTernaryMin (values) {
  * @returns
  */
 function reduceMathMin (values) {
-  return values.reduce((minimum, num) => Math.min(minimum, num), Infinity)
+  return values.reduce(
+    (minimum, num) => Math.min(minimum, num),
+    Number.POSITIVE_INFINITY
+  )
 }
 
 /**
@@ -47,28 +51,24 @@ function sortMin (values) {
   return values.sort((a, b) => a - b)[0]
 }
 
-Benchmark.suite(
-  `Min from ${size} numbers`,
-  Benchmark.add('Math.min', () => {
+group(`Min from ${size} numbers`, () => {
+  bench('Math.min', () => {
     Math.min(...testArray)
-  }),
-  Benchmark.add('loopMin', () => {
+  })
+  bench('loopMin', () => {
     loopMin(testArray)
-  }),
-  Benchmark.add('reduceTernaryMin', () => {
+  })
+  bench('reduceTernaryMin', () => {
     reduceTernaryMin(testArray)
-  }),
-  Benchmark.add('reduceMath.min', () => {
+  })
+  bench('reduceMathMin', () => {
     reduceMathMin(testArray)
-  }),
-  Benchmark.add('sortMin', () => {
+  })
+  bench('sortMin', () => {
     sortMin(testArray)
-  }),
-  Benchmark.cycle(),
-  Benchmark.complete(),
-  Benchmark.save({ file: 'min', format: 'json', details: true }),
-  Benchmark.save({ file: 'min', format: 'chart.html', details: true }),
-  Benchmark.save({ file: 'min', format: 'table.html', details: true })
-).catch(err => {
-  console.error(err)
+  })
+})
+
+await run({
+  units: true
 })