double-double
Version:
Pure double-double precision functions *with strict error bounds*.
69 lines (58 loc) • 1.89 kB
text/typescript
import { parseDouble, parseDoubleDetailed } from '../../src/index.js';
import { expect } from 'chai';
import { describe } from 'mocha';
describe('parseDouble', function() {
it('should parse a double correctly',
function() {
{
let a = -0.1;
let rd = parseDoubleDetailed(a);
expect(rd).to.eql({
full: '10111111101111001100110011001100110011001100110011001100110011010',
sign: '1',
exponent: '01111111011',
hidden: '1',
significand: '1001100110011001100110011001100110011001100110011010'
});
let r = parseDouble(a);
expect(r).to.eql({
sign: 1,
exponent: -4,
significand: [
25,
153,
153,
153,
153,
153,
154
]
});
}
{
let a = +0.1;
let rd = parseDoubleDetailed(a);
expect(rd).to.eql({
full: '00111111101111001100110011001100110011001100110011001100110011010',
sign: '0',
exponent: '01111111011',
hidden: '1',
significand: '1001100110011001100110011001100110011001100110011010'
});
let r = parseDouble(a);
expect(r).to.eql({
sign: 0,
exponent: -4,
significand: [
25,
153,
153,
153,
153,
153,
154
]
});
}
});
});