Advertisement
krasi1105

Tests

Dec 13th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const mocha = require('mocha')
  2. const sinon = require('sinon')
  3. const chai = require('chai')
  4.  
  5. const PRECISION_DIGITS = 14
  6. let floatEqualityComparer = (a, b) => {
  7.   let diff = Math.abs(a - b)
  8.   let c = Math.log10(Math.abs(Math.max(a, b)) || 1)
  9.   let epsilon = Math.pow(10, c - PRECISION_DIGITS)
  10.   return diff < epsilon
  11. }
  12.  
  13. let expect = chai.expect
  14. describe('Tests', function () {
  15.   it('Test 1', function () {
  16.     let equal = floatEqualityComparer(0, 0)
  17.     expect(equal).to.be.true
  18.   })
  19.   it('Test 2', function () {
  20.     let equal = floatEqualityComparer(0.1 + 0.2, 0.15 + 0.15)
  21.     expect(equal).to.be.true
  22.   })
  23.   it('Test 3', function () {
  24.     let equal = floatEqualityComparer((1 / 3) * 3, 1)
  25.     expect(equal).to.be.true
  26.   })
  27.   it('Test 4', function () {
  28.     let equal = floatEqualityComparer(0, 1 - 1)
  29.     expect(equal).to.be.true
  30.   })
  31.   it('Test 5', function () {
  32.     let equal = floatEqualityComparer(1E10, Math.pow(10, 10))
  33.     expect(equal).to.be.true
  34.   })
  35.   it('Test 6', function () {
  36.     let equal = floatEqualityComparer(1E11, 1.1E11)
  37.     expect(equal).to.be.false
  38.   })
  39.   it('Test 7', function () {
  40.     let equal = floatEqualityComparer(0, 0.1)
  41.     expect(equal).to.be.false
  42.   })
  43.   it('Test 8', function () {
  44.     let equal = floatEqualityComparer(-0.1, 0.1)
  45.     expect(equal).to.be.false
  46.   })
  47.   it('Test 9', function () {
  48.     let equal = floatEqualityComparer(Number.MAX_VALUE, Number.POSITIVE_INFINITY)
  49.     expect(equal).to.be.false
  50.   })
  51.   it('Test 10', function () {
  52.     let equal = floatEqualityComparer(0.9, 1)
  53.     expect(equal).to.be.false
  54.   })
  55.   it('Test 11', function () {
  56.     let equal = floatEqualityComparer(1.999999, 2)
  57.     expect(equal).to.be.false
  58.   })
  59.   it('Test 12', function () {
  60.     let equal = floatEqualityComparer(1E20, 1E21)
  61.     expect(equal).to.be.false
  62.   })
  63.   it('Test 13', function () {
  64.     let equal = floatEqualityComparer(1E200, 1E201)
  65.     expect(equal).to.be.false
  66.   })
  67.   it('Should be equal if difference is too small', function () {
  68.     let equal = floatEqualityComparer(1, 1.0000000000000001)
  69.     expect(equal).to.be.true
  70.   })
  71.   it('Should be equal if difference is too small', function () {
  72.     let equal = floatEqualityComparer(1E200, 1.000000000000001E200)
  73.     expect(equal).to.be.true
  74.   })
  75. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement