Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

chai-almost

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chai-almost - npm Package Compare versions

Comparing version 0.1.0 to 0.9.0

.babelrc

37

package.json
{
"name": "chai-almost",
"version": "0.1.0",
"description": "",
"main": "index.js",
"version": "0.9.0",
"description": "Extends chai with assertions that allow for floating point rounding errors",
"main": "lib/index.js",
"repository": "https://github.com/nmuldavin/chai-almost.git",
"author": "Noah Muldavin <nmuldavin@gmail.com>",
"license": "MIT",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"build": "babel src -d lib",
"test": "mocha test",
"test:watch": "mocha test -w"
},
"repository": {
"type": "git",
"url": "git+https://github.com/nmuldavin/chai-almost.git"
"dependencies": {
"deep-eql": "^2.0.2",
"type-detect": "^4.0.3"
},
"author": "Noah Muldavin <nmuldavin@gmail.com>",
"license": "ISC",
"bugs": {
"url": "https://github.com/nmuldavin/chai-almost/issues"
},
"homepage": "https://github.com/nmuldavin/chai-almost#readme"
"devDependencies": {
"babel-cli": "^6.24.1",
"babel-preset-env": "^1.4.0",
"chai": "^3.5.0",
"eslint": "^3.19.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-node": "^4.2.2",
"eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^3.0.1",
"mocha": "^3.3.0"
}
}

@@ -1,3 +0,61 @@

#chai-almost
# chai-almost
Extends chai with assertions that allow for floating point rounding errors
[![npm](https://img.shields.io/npm/v/chai-roughly.svg)](https://www.npmjs.com/package/chai-almost)
Extends [chai](https://github.com/chaijs/chai) with assertions that allow numbers to be "almost" equal (as in, within some tolerance of one another). This is useful in particular when accounting for floating point rounding errors or other approximations.
## Installation
```
npm install chai-almost --save-dev
```
## Use
To use, import the module then invoke it with `chai.use`:
```
const chai = require('chai');
const chaiAlmost = require('chai-almost');
chai.use(chaiAlmost());
```
By default, `chai-almost` allows a tolerance of 1 x 10<sup>-6</sup>. This will let most rounding errors to pass safely but will still reject most true inequalities. You may override this value by passing your desired tolerance as an argument to the module on invocation:
```
chai.use(chaiAlmost(0.1))
```
### Assertions
The 'almost' assertion may be used chainably with deep or shallow equality:
```
// shallow
expect(3.9999999).to.almost.equal(4) // passes
expect(3.9).to.almost.equal(4) // fails
expect(4.0000001).to.be.almost(4) // passes
expect(4.1).to.not.be.almost(4) // passes
// deep
expect({ taco: 'pastor', num: 3.9999999 }).to.almost.eql({ taco: 'pastor', num: 4 }) // passes
expect([[1, 2, 2.9999999], 1.0000001]).to.be.deep.almost([[1, 2, 3], 1]) // passes
expect({ taco: 'pastor', num: 3.9 }).to.not.almost.eql({ taco: 'pastor', num: 4 }) // passes
```
Equality checks on non-numbers are left unchanged:
```
expect('taco').to.almost.equal('taco') // still passes
expect({ x: 5 }).to.be.almost({ x: 5 }) // still fails (shallow equality)
expect(['tacos', 2, 3]).to.be.deep.almost(['burritos', 2, 2.9999999]) // still fails
```
### Specific tolerance
A one-time custom tolerance for shallow or deep equality may be passed in as the second argument to `almost`:
```
expect(10).to.be.almost(15, 10) // passes
expect([4, 2, 5]).to.be.deep.almost([3, 4, 7], 3) // passes
```
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc