UNPKG

integer

Version:

Native 64-bit integers with overflow protection.

25 lines (23 loc) 1.3 kB
'use strict'; const expect = require('chai').expect; const Integer = require('../.'); describe('Integer#toNumberUnsafe()', function () { it('should work when within the safe range', function () { expect(Integer(123).toNumberUnsafe()).to.equal(123); expect(Integer(0).toNumberUnsafe()).to.equal(0); expect(Integer(1).toNumberUnsafe()).to.equal(1); expect(Integer(-1).toNumberUnsafe()).to.equal(-1); expect(Integer(Number.MAX_SAFE_INTEGER).toNumberUnsafe()).to.equal(Number.MAX_SAFE_INTEGER); expect(Integer(Number.MIN_SAFE_INTEGER).toNumberUnsafe()).to.equal(Number.MIN_SAFE_INTEGER); }); it('should return approximate results when outside the safe range', function () { const big = Integer(Number.MAX_SAFE_INTEGER); const small = Integer(Number.MIN_SAFE_INTEGER); expect(big.add(1).toNumberUnsafe()).to.equal(Number.MAX_SAFE_INTEGER + 1); expect(small.subtract(1).toNumberUnsafe()).to.equal(Number.MIN_SAFE_INTEGER - 1); expect(big.add(100).toNumberUnsafe()).to.equal(Number.MAX_SAFE_INTEGER + 101); expect(small.subtract(100).toNumberUnsafe()).to.equal(Number.MIN_SAFE_INTEGER - 101); expect(Integer('9223372036854775807').toNumberUnsafe()).to.equal(9223372036854776000); expect(Integer('-9223372036854775808').toNumberUnsafe()).to.equal(-9223372036854776000); }); });