double-double
Version:
Pure double-double precision functions *with strict error bounds*.
34 lines (29 loc) • 1.43 kB
text/typescript
import { assert, expect } from 'chai';
import { describe } from 'mocha';
import { getHighestSetBit, getLowestSetBit } from '../../src/index.js';
describe('max set bits', function() {
it('should check highest set bit is given correctly',
function() {
expect(getHighestSetBit(1/65536)).to.eql(52);
expect(getHighestSetBit(0)).to.eql(NaN);
expect(getHighestSetBit(1.390671161567e-310)).to.eql(44);
expect(getHighestSetBit(5e-324)).to.eql(0);
expect(getHighestSetBit(1e-323)).to.eql(1);
expect(getHighestSetBit(0.1)).to.eql(52);
expect(getHighestSetBit(123123)).to.eql(52);
expect(getHighestSetBit(0.0322123123)).to.eql(52);
expect(getHighestSetBit(1.335044315104321e-308)).to.eql(51);
});
it('should check lowest set bit is given correctly',
function() {
expect(getLowestSetBit(1/65536)).to.eql(52);
expect(getLowestSetBit(0)).to.eql(NaN);
expect(getLowestSetBit(1.390671161567e-310)).to.eql(1);
expect(getLowestSetBit(1.3906711614456e-310)).to.eql(12);
expect(getLowestSetBit(2.238980570121657e-308)).to.eql(12);
expect(getLowestSetBit(2.2389805701196335e-308)).to.eql(15);
expect(getLowestSetBit(0.2515624999996362)).to.eql(15);
expect(getLowestSetBit(5e-324)).to.eql(0);
expect(getLowestSetBit(1e-323)).to.eql(1);
});
});