Skip to content

Commit f5cec76

Browse files
author
James Gibson
committed
Tests for assert.epsilon failing on NaN
Tests to make sure assert.epsilon fails when either the epsilon or actual arguments are NaN. Added a different failure message for the case that epsilon is NaN.
1 parent ec0442c commit f5cec76

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

lib/assert/macros.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ for (var key in messages) {
1717
}
1818

1919
assert.epsilon = function (eps, actual, expected, message) {
20-
if (isNaN(actual) || Math.abs(actual - expected) > eps) {
20+
if (isNaN(eps)) {
21+
assert.fail(actual, expected, message || "cannot compare {actual} with {expected} \u00B1 NaN");
22+
} else if (isNaN(actual) || Math.abs(actual - expected) > eps) {
2123
assert.fail(actual, expected, message || "expected {expected} \u00B1"+ eps +", but was {actual}");
2224
}
2325
};

test/assert-test.js

+6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ vows.describe('vows/assert').addBatch({
99
},
1010
"`epsilon`": function() {
1111
assert.epsilon(1e-5, 0.1+0.2, 0.3);
12+
assert.throws(function() {
13+
assert.epsilon(1e-5, NaN, 0.3);
14+
});
15+
assert.throws(function() {
16+
assert.epsilon(NaN, 1.0, 1.0);
17+
});
1218
},
1319
"`match`": function () {
1420
assert.match("hello world", /^[a-z]+ [a-z]+$/);

0 commit comments

Comments
 (0)