]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
[misc] Add general benchmarks: get, set, compare (#2659) (#4963)
authortomerle <tomerle@users.noreply.github.com>
Fri, 24 Apr 2020 11:30:44 +0000 (14:30 +0300)
committerGitHub <noreply@github.com>
Fri, 24 Apr 2020 11:30:44 +0000 (14:30 +0300)
Add grunt benchmark sub tasks: get, set, endOf, startOf, compare
Add grunt benchmark sub task for running all: all

Gruntfile.js
benchmarks/compare.js [new file with mode: 0644]
benchmarks/get.js [new file with mode: 0644]
benchmarks/set.js [new file with mode: 0644]

index 557f9de9e032e22d48f13a6691531b583ea46ed5..05147e9855d878c15e047d6f44de7bbafe71e438 100644 (file)
@@ -153,9 +153,12 @@ module.exports = function (grunt) {
             }
         },
         benchmark: {
-            all: {
-                src: ['benchmarks/*.js']
-            }
+            compare: {src: ['benchmarks/compare.js']},
+            startOf: {src: ['benchmarks/startOf.js']},
+            endOf: {src: ['benchmarks/endOf.js']},
+            get: {src: ['benchmarks/get.js']},
+            set: {src: ['benchmarks/set.js']},
+            all: {src: ['benchmarks/*.js']}
         },
         exec: {
             'meteor-init': {
diff --git a/benchmarks/compare.js b/benchmarks/compare.js
new file mode 100644 (file)
index 0000000..fc32c8c
--- /dev/null
@@ -0,0 +1,33 @@
+var moment = require("./../moment.js");
+
+var UNIT = 'date';
+
+var NOW = Date.now();
+var DIFF = -1 * 24 * 60 * 60 * 1e3
+
+var THIS = moment(NOW);
+var INPUT = moment(NOW + DIFF);
+
+// For isBetween
+var FROM = moment(NOW + DIFF);
+var TO = moment(NOW + 2 * DIFF);
+
+function createTest(method) {
+    return {
+        fn: function() { return method.call(THIS, INPUT, UNIT); },
+        async: false
+    };
+}
+
+var tests = {};
+tests.isAfter = createTest(THIS.isAfter);
+tests.isBefore = createTest(THIS.isBefore);
+tests.isSame = createTest(THIS.isSame);
+tests.isSameOrAfter = createTest(THIS.isSameOrAfter);
+tests.isSameOrBefore = createTest(THIS.isSameOrBefore);
+tests.isBetween = createTest(function () { return THIS.isBetween(FROM, TO, UNIT); });
+
+module.exports = {
+    name: 'compare ' + UNIT,
+    tests: tests
+};
diff --git a/benchmarks/get.js b/benchmarks/get.js
new file mode 100644 (file)
index 0000000..a654df4
--- /dev/null
@@ -0,0 +1,21 @@
+var moment = require('./../moment.js');
+
+var base = moment('2013-05-25');
+
+function createTest(unit) {
+    return {
+        fn: function () { base.get(unit); },
+        async: false
+    };
+}
+
+var units = ['second', 'minute', 'hour', 'date', 'day', 'isoWeek', 'week', 'month', 'quarter', 'year'];
+var tests = units.reduce(function (tests, unit) {
+    tests['get ' + unit] = createTest(unit);
+    return tests;
+}, {});
+
+module.exports = {
+    name: 'get',
+    tests: tests
+};
diff --git a/benchmarks/set.js b/benchmarks/set.js
new file mode 100644 (file)
index 0000000..1e7b1e0
--- /dev/null
@@ -0,0 +1,22 @@
+var moment = require('./../moment.js')
+
+var base = moment('2013-05-25');
+var value = 2;
+
+function createTest(unit) {
+    return {
+        fn: function () { base.set(unit, value); },
+        async: false
+    };
+}
+
+var units = ['second', 'minute', 'hour', 'date', 'day', 'isoWeek', 'week', 'month', 'quarter', 'year'];
+var tests = units.reduce(function (tests, unit) {
+    tests['set ' + unit] = createTest(unit);
+    return tests;
+}, {});
+
+module.exports = {
+    name: 'set',
+    tests: tests
+};