A QUnit plugin for asserting that a number is approximately equal (or not) to an expected number, within a given tolerance.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.jshintrc
.mailmap
.travis.yml
AUTHORS.txt
Gruntfile.js
MIT-LICENSE.txt
README.md
package.json
qunit-assert-close.js

README.md

Build Status NPM version

QUnit Close assertion plugin

This plugin for QUnit adds close, notClose, close.percent, and notClose.percent assertion methods to test that a number is approximately equal (or not) to an expected number, within a given tolerance.

Usage

assert.close(actual, expected, maxDifference, message);

assert.notClose(actual, expected, minDifference, message);

assert.close.percent(actual, expected, maxPercentDifference, message);
// Alternatively:
assert.closePercent(actual, expected, maxPercentDifference, message);

assert.notClose.percent(actual, expected, minPercentDifference, message);
// Alternatively:
assert.notClosePercent(actual, expected, minPercentDifference, message);

Where:

  • maxDifference: the maximum inclusive difference allowed (tolerance) between the actual and expected numbers
  • minDifference: the minimum exclusive difference allowed (tolerance) between the actual and expected numbers
  • actual, expected, message: The usual

Examples

Example 1: Number differences

QUnit.test('Example number unit test', function(assert) {
  assert.close(3.141, Math.PI, 0.001);
  assert.notClose(3.1, Math.PI, 0.001);
});

Example 2: Percentage differences

QUnit.test('Example percentage unit test', function(assert) {
  assert.close.percent(155, 150, 3.4);     // Difference is ~3.33%
  assert.notClose.percent(156, 150, 3.5);  // Difference is 4.0%
});

For more examples, refer to the unit tests.