aboutsummaryrefslogtreecommitdiffstats
path: root/external/qunit-assert-close
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2015-04-08 09:15:23 -0400
committerScott González <scott.gonzalez@gmail.com>2015-04-09 09:28:25 -0400
commit4bf80d209a7e804e1aa33d92faf3812a714a03c2 (patch)
tree928a94f9342bb92ec79d1a8fb8c4a07be88ec53f /external/qunit-assert-close
parentbde431bb449b1d957d4e0b736111ff342f2a919d (diff)
downloadjquery-ui-4bf80d209a7e804e1aa33d92faf3812a714a03c2.tar.gz
jquery-ui-4bf80d209a7e804e1aa33d92faf3812a714a03c2.zip
Tests: Use the qunit-assert-close module
Moved QUnit assertion dependencies from `lib/bootstrap` to `lib/qunit`. Corrected bad draggable assertions. Ref gh-1528
Diffstat (limited to 'external/qunit-assert-close')
-rw-r--r--external/qunit-assert-close/MIT-LICENSE.txt21
-rw-r--r--external/qunit-assert-close/qunit-assert-close.js106
2 files changed, 127 insertions, 0 deletions
diff --git a/external/qunit-assert-close/MIT-LICENSE.txt b/external/qunit-assert-close/MIT-LICENSE.txt
new file mode 100644
index 000000000..aed5dc97e
--- /dev/null
+++ b/external/qunit-assert-close/MIT-LICENSE.txt
@@ -0,0 +1,21 @@
+Copyright jQuery Foundation and other contributors
+http://jquery.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/external/qunit-assert-close/qunit-assert-close.js b/external/qunit-assert-close/qunit-assert-close.js
new file mode 100644
index 000000000..bd843810a
--- /dev/null
+++ b/external/qunit-assert-close/qunit-assert-close.js
@@ -0,0 +1,106 @@
+/**
+ * Checks that the first two arguments are equal, or are numbers close enough to be considered equal
+ * based on a specified maximum allowable difference.
+ *
+ * @example assert.close(3.141, Math.PI, 0.001);
+ *
+ * @param Number actual
+ * @param Number expected
+ * @param Number maxDifference (the maximum inclusive difference allowed between the actual and expected numbers)
+ * @param String message (optional)
+ */
+function close(actual, expected, maxDifference, message) {
+ var actualDiff = (actual === expected) ? 0 : Math.abs(actual - expected),
+ result = actualDiff <= maxDifference;
+ message = message || (actual + " should be within " + maxDifference + " (inclusive) of " + expected + (result ? "" : ". Actual: " + actualDiff));
+ QUnit.push(result, actual, expected, message);
+}
+
+
+/**
+ * Checks that the first two arguments are equal, or are numbers close enough to be considered equal
+ * based on a specified maximum allowable difference percentage.
+ *
+ * @example assert.close.percent(155, 150, 3.4); // Difference is ~3.33%
+ *
+ * @param Number actual
+ * @param Number expected
+ * @param Number maxPercentDifference (the maximum inclusive difference percentage allowed between the actual and expected numbers)
+ * @param String message (optional)
+ */
+close.percent = function closePercent(actual, expected, maxPercentDifference, message) {
+ var actualDiff, result;
+ if (actual === expected) {
+ actualDiff = 0;
+ result = actualDiff <= maxPercentDifference;
+ }
+ else if (actual !== 0 && expected !== 0 && expected !== Infinity && expected !== -Infinity) {
+ actualDiff = Math.abs(100 * (actual - expected) / expected);
+ result = actualDiff <= maxPercentDifference;
+ }
+ else {
+ // Dividing by zero (0)! Should return `false` unless the max percentage was `Infinity`
+ actualDiff = Infinity;
+ result = maxPercentDifference === Infinity;
+ }
+ message = message || (actual + " should be within " + maxPercentDifference + "% (inclusive) of " + expected + (result ? "" : ". Actual: " + actualDiff + "%"));
+
+ QUnit.push(result, actual, expected, message);
+};
+
+
+/**
+ * Checks that the first two arguments are numbers with differences greater than the specified
+ * minimum difference.
+ *
+ * @example assert.notClose(3.1, Math.PI, 0.001);
+ *
+ * @param Number actual
+ * @param Number expected
+ * @param Number minDifference (the minimum exclusive difference allowed between the actual and expected numbers)
+ * @param String message (optional)
+ */
+function notClose(actual, expected, minDifference, message) {
+ var actualDiff = Math.abs(actual - expected),
+ result = actualDiff > minDifference;
+ message = message || (actual + " should not be within " + minDifference + " (exclusive) of " + expected + (result ? "" : ". Actual: " + actualDiff));
+ QUnit.push(result, actual, expected, message);
+}
+
+
+/**
+ * Checks that the first two arguments are numbers with differences greater than the specified
+ * minimum difference percentage.
+ *
+ * @example assert.notClose.percent(156, 150, 3.5); // Difference is 4.0%
+ *
+ * @param Number actual
+ * @param Number expected
+ * @param Number minPercentDifference (the minimum exclusive difference percentage allowed between the actual and expected numbers)
+ * @param String message (optional)
+ */
+notClose.percent = function notClosePercent(actual, expected, minPercentDifference, message) {
+ var actualDiff, result;
+ if (actual === expected) {
+ actualDiff = 0;
+ result = actualDiff > minPercentDifference;
+ }
+ else if (actual !== 0 && expected !== 0 && expected !== Infinity && expected !== -Infinity) {
+ actualDiff = Math.abs(100 * (actual - expected) / expected);
+ result = actualDiff > minPercentDifference;
+ }
+ else {
+ // Dividing by zero (0)! Should only return `true` if the min percentage was `Infinity`
+ actualDiff = Infinity;
+ result = minPercentDifference !== Infinity;
+ }
+ message = message || (actual + " should not be within " + minPercentDifference + "% (exclusive) of " + expected + (result ? "" : ". Actual: " + actualDiff + "%"));
+
+ QUnit.push(result, actual, expected, message);
+};
+
+
+QUnit.extend(QUnit.assert, {
+ close: close,
+ notClose: notClose
+}); \ No newline at end of file