aboutsummaryrefslogtreecommitdiffstats
path: root/library/moment/benchmarks/zeroFill.js
diff options
context:
space:
mode:
Diffstat (limited to 'library/moment/benchmarks/zeroFill.js')
-rw-r--r--library/moment/benchmarks/zeroFill.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/library/moment/benchmarks/zeroFill.js b/library/moment/benchmarks/zeroFill.js
new file mode 100644
index 000000000..9ce76ee98
--- /dev/null
+++ b/library/moment/benchmarks/zeroFill.js
@@ -0,0 +1,43 @@
+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
+ }
+ }
+};