import { add, formatDecimal, multiply, subtract } from '../common/decimal'; import { decimal } from './decimal'; describe('decimal', () => { it('keeps signed nanos exact without floats', () => { expect(formatDecimal(decimal({ units: 0, nano: -500000000 }))).toBe('-0.5'); expect( formatDecimal( add(decimal({ units: '9007199254740993' }), decimal({ nano: 1 })), ), ).toBe('9007199254740993.000000001'); expect( formatDecimal( subtract(decimal({ units: 1 }), decimal({ nano: 500000000 })), ), ).toBe('0.5'); expect( formatDecimal( multiply(decimal({ units: 2 }), decimal({ nano: 500000000 })), ), ).toBe('1'); }); });