Giovanni Bucci 6b42554342
util: expose diff function used by the assertion errors
fix: https://github.com/nodejs/node/issues/51740
PR-URL: https://github.com/nodejs/node/pull/57462
Fixes: https://github.com/nodejs/node/issues/51740
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2025-03-19 23:59:07 +00:00

44 lines
1.1 KiB
JavaScript

'use strict';
const util = require('util');
const common = require('../common');
const bench = common.createBenchmark(main, {
n: [1e3],
length: [1e3, 2e3],
scenario: ['identical', 'small-diff', 'medium-diff', 'large-diff'],
});
function main({ n, length, scenario }) {
const actual = Array.from({ length }, (_, i) => `${i}`);
let expected;
switch (scenario) {
case 'identical': // 0% difference
expected = Array.from({ length }, (_, i) => `${i}`);
break;
case 'small-diff': // ~5% difference
expected = Array.from({ length }, (_, i) => {
return Math.random() < 0.05 ? `modified-${i}` : `${i}`;
});
break;
case 'medium-diff': // ~25% difference
expected = Array.from({ length }, (_, i) => {
return Math.random() < 0.25 ? `modified-${i}` : `${i}`;
});
break;
case 'large-diff': // ~100% difference
expected = Array.from({ length }, (_, i) => `modified-${i}`);
break;
}
bench.start();
for (let i = 0; i < n; i++) {
util.diff(actual, expected);
}
bench.end(n);
}