1 import Benchmark from 'benny'
3 import { generateRandomNumberArray } from './benchmark-utils.mjs'
6 const testArray = generateRandomNumberArray(size)
13 function loopMin (values) {
14 let minimum = Infinity
15 for (const value of values) {
16 if (value < minimum) minimum = value
26 function reduceTernaryMin (values) {
28 (minimum, num) => (minimum < num ? minimum : num),
38 function reduceMathMin (values) {
39 return values.reduce((minimum, num) => Math.min(minimum, num), Infinity)
47 function sortMin (values) {
48 return values.sort((a, b) => a - b)[0]
52 `Min from ${size} numbers`,
53 Benchmark.add('Math.min', () => {
54 Math.min(...testArray)
56 Benchmark.add('loopMin', () => {
59 Benchmark.add('reduceTernaryMin', () => {
60 reduceTernaryMin(testArray)
62 Benchmark.add('reduceMath.min', () => {
63 reduceMathMin(testArray)
65 Benchmark.add('sortMin', () => {
70 Benchmark.save({ file: 'min', format: 'json', details: true }),
71 Benchmark.save({ file: 'min', format: 'chart.html', details: true }),
72 Benchmark.save({ file: 'min', format: 'table.html', details: true })
73 ).catch(console.error)