mathjs/test/benchmark/flatten.js

35 lines
1.1 KiB
JavaScript

import { Bench } from 'tinybench'
import { DenseMatrix, map, ones, random, round, flatten } from '../../lib/esm/index.js'
import { formatTaskResult } from './utils/formatTaskResult.js'
import { flatten as flattenArray } from '../../src/utils/array.js'
const genericMatrix = map(ones(10, 10, 'dense'), _ => round(random(-5, 5), 2))
const numberMatrix = new DenseMatrix(genericMatrix, 'number')
const array = genericMatrix.toArray()
// console.log('data', array)
// console.log('abs(data)', abs(array))npm run
const bench = new Bench({ time: 100, iterations: 100 })
.add('flatten(array)', () => {
flatten(array)
})
.add('flattenArray(array)', () => {
flattenArray(array)
})
.add('flattenArray(array, false)', () => {
flattenArray(array, false)
})
.add('flattenArray(array, true)', () => {
flattenArray(array, true)
})
.add('flatten(genericMatrix)', () => {
flatten(genericMatrix)
})
.add('flatten(numberMatrix)', () => {
flatten(numberMatrix)
})
bench.addEventListener('cycle', (event) => console.log(formatTaskResult(bench, event.task)))
await bench.run()