| 33 | } |
| 34 | |
| 35 | function benchmark(method, n, values, values2, order) { |
| 36 | const actual = new Set(values); |
| 37 | // Prevent reference equal elements |
| 38 | let deepCopy = JSON.parse(JSON.stringify(values2)); |
| 39 | if (order === 'reversed') { |
| 40 | deepCopy = deepCopy.reverse(); |
| 41 | } else if (order === 'random') { |
| 42 | shuffleArray(deepCopy); |
| 43 | } |
| 44 | const expected = new Set(deepCopy); |
| 45 | bench.start(); |
| 46 | for (let i = 0; i < n; ++i) { |
| 47 | method(actual, expected); |
| 48 | } |
| 49 | bench.end(n); |
| 50 | } |
| 51 | |
| 52 | function main({ n, len, method, strict, order }) { |
| 53 | const array = Array.from({ length: len }, () => ''); |