qunit-assert-close

A QUnit plugin for asserting that a number is approximately equal (or not) to an expected number, within a given tolerance.

Usage no npm install needed!

<script type="module">
  import qunitAssertClose from 'https://cdn.skypack.dev/qunit-assert-close';
</script>

README

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.