-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathsubset.js
More file actions
116 lines (113 loc) · 4.46 KB
/
Copy pathsubset.js
File metadata and controls
116 lines (113 loc) · 4.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import { Bench } from 'tinybench'
import { index, Range, subset, map, ones, random, round } from '../../lib/esm/index.js'
import { formatTaskResult } from './utils/formatTaskResult.js'
const matrix = map(ones(10, 10, 'dense'), _ => round(random(-5, 5), 2))
const array = matrix.toArray()
const bigMatrix = map(ones(150, 150, 'dense'), _ => round(random(-5, 5), 2))
const bigArray = map(ones(150, 150, 'dense'), _ => round(random(-5, 5), 2))
const arrayOfBooleans = [true, false, false, true, true, true, false, true, false, true]
const fiveNumbers = [0, 1, 5, 7, 9]
const twoNumbers = [4, 6]
const range = new Range(2, 9, 3)
const bigRange = new Range(1, 150, 10)
const rangeAll = new Range(0, 10)
const replacement = [1]
const bench = new Bench({ time: 100, iterations: 100 })
.add('subset(matrix, rows and columns)', () => {
subset(matrix, index(fiveNumbers, twoNumbers))
})
.add('subset(array, rows and columns)', () => {
subset(array, index(fiveNumbers, twoNumbers))
})
.add('subset(matrix, booleans and columns)', () => {
subset(matrix, index(arrayOfBooleans, twoNumbers))
})
.add('subset(array, booleans and columns)', () => {
subset(array, index(arrayOfBooleans, twoNumbers))
})
.add('subset(matrix, columns and booleans)', () => {
subset(matrix, index(arrayOfBooleans, twoNumbers))
})
.add('subset(array, columns and booleans)', () => {
subset(array, index(arrayOfBooleans, twoNumbers))
})
.add('subset(matrix, range and rows)', () => {
subset(matrix, index(range, twoNumbers))
})
.add('subset(array, range and rows)', () => {
subset(array, index(range, twoNumbers))
})
.add('subset(matrix, range and all)', () => {
subset(matrix, index(range, rangeAll))
})
.add('subset(array, range and all)', () => {
subset(array, index(range, rangeAll))
})
.add('subset(matrix, all and range)', () => {
subset(matrix, index(rangeAll, range))
})
.add('subset(array, all and range)', () => {
subset(array, index(rangeAll, range))
})
.add('subset(matrix, all and all)', () => {
subset(matrix, index(rangeAll, rangeAll))
})
.add('subset(array, all and all)', () => {
subset(array, index(rangeAll, rangeAll))
})
.add('subset(matrix, rows and columns, replacement)', () => {
subset(matrix, index(fiveNumbers, twoNumbers), replacement)
})
.add('subset(array, rows and columns, replacement)', () => {
subset(array, index(fiveNumbers, twoNumbers), replacement)
})
.add('subset(matrix, booleans and columns, replacement)', () => {
subset(matrix, index(arrayOfBooleans, twoNumbers), replacement)
})
.add('subset(array, booleans and columns, replacement)', () => {
subset(array, index(arrayOfBooleans, twoNumbers), replacement)
})
.add('subset(matrix, columns and booleans, replacement)', () => {
subset(matrix, index(arrayOfBooleans, twoNumbers), replacement)
})
.add('subset(array, columns and booleans, replacement)', () => {
subset(array, index(arrayOfBooleans, twoNumbers), replacement)
})
.add('subset(matrix, range and rows, replacement)', () => {
subset(matrix, index(range, twoNumbers), replacement)
})
.add('subset(array, range and rows, replacement)', () => {
subset(array, index(range, twoNumbers), replacement)
})
.add('subset(matrix, range and all, replacement)', () => {
subset(matrix, index(range, rangeAll), replacement)
})
.add('subset(array, range and all, replacement)', () => {
subset(array, index(range, rangeAll), replacement)
})
.add('subset(matrix, all and range, replacement)', () => {
subset(matrix, index(rangeAll, range), replacement)
})
.add('subset(array, all and range, replacement)', () => {
subset(array, index(rangeAll, range), replacement)
})
.add('subset(matrix, all and all, replacement)', () => {
subset(matrix, index(rangeAll, rangeAll), replacement)
})
.add('subset(array, all and all, replacement)', () => {
subset(array, index(rangeAll, rangeAll), replacement)
})
.add('subset(bigMatrix, rows and columns)', () => {
subset(bigMatrix, index(fiveNumbers, twoNumbers))
})
.add('subset(bigArray, rows and columns)', () => {
subset(bigArray, index(fiveNumbers, twoNumbers))
})
.add('subset(bigMatrix, range and columns)', () => {
subset(bigMatrix, index(bigRange, twoNumbers))
})
.add('subset(bigArray, rows and range)', () => {
subset(bigArray, index(fiveNumbers, bigRange))
})
bench.addEventListener('cycle', (event) => console.log(formatTaskResult(bench, event.task)))
await bench.run()