You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
7 years ago
|
var Benchmark = require('benchmark');
|
||
|
|
||
|
module.exports = {
|
||
|
name: 'zeroFill',
|
||
|
tests: {
|
||
|
zeroFillMath: {
|
||
|
setup: function() {
|
||
|
var zeroFillMath = function(number, targetLength, forceSign) {
|
||
|
var absNumber = '' + Math.abs(number),
|
||
|
zerosToFill = targetLength - absNumber.length,
|
||
|
sign = number >= 0;
|
||
|
return (sign ? (forceSign ? '+' : '') : '-') +
|
||
|
Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
|
||
|
}
|
||
|
},
|
||
|
fn: function() {
|
||
|
zeroFillMath(Math.random() * 1e5 | 0, 5);
|
||
|
zeroFillMath(Math.random() * 1e5 | 0, 10);
|
||
|
zeroFillMath(Math.random() * 1e10 | 0, 20);
|
||
|
},
|
||
|
async: true
|
||
|
},
|
||
|
zeroFillWhile: {
|
||
|
setup: function() {
|
||
|
var zeroFillWhile = function(number, targetLength, forceSign) {
|
||
|
var output = '' + Math.abs(number),
|
||
|
sign = number >= 0;
|
||
|
|
||
|
while (output.length < targetLength) {
|
||
|
output = '0' + output;
|
||
|
}
|
||
|
return (sign ? (forceSign ? '+' : '') : '-') + output;
|
||
|
}
|
||
|
},
|
||
|
fn: function() {
|
||
|
zeroFillWhile(Math.random() * 1e5 | 0, 5);
|
||
|
zeroFillWhile(Math.random() * 1e5 | 0, 10);
|
||
|
zeroFillWhile(Math.random() * 1e10 | 0, 20);
|
||
|
},
|
||
|
async: true
|
||
|
}
|
||
|
}
|
||
|
};
|