UNPKG

mpzjs

Version:

Arbitrary-precision integer arithmetic using libgmp

49 lines (42 loc) 1.64 kB
const MPZ = require('../'); test('abs', () => { expect( MPZ( '433593290010590489671135819286259593426549306666324008679782084292' + '2446494189019075159822930571858728009485237489829138626896756141' + '8738958337632249177044975686477011571044266' ).abs().toString() ).toBe( '4335932900105904896711358192862595934265493066663240086797820842922446' + '49418901907515982293057185872800948523748982913862689675614187389583' + '37632249177044975686477011571044266' ); expect( MPZ( '-43359329001059048967113581928625959342654930666632400867978208429' + '2244649418901907515982293057185872800948523748982913862689675614' + '18738958337632249177044975686477011571044266' ).abs().toString() ).toBe( '4335932900105904896711358192862595934265493066663240086797820842922446' + '49418901907515982293057185872800948523748982913862689675614187389583' + '37632249177044975686477011571044266' ); const result = MPZ(); MPZ.abs(result, MPZ('4353425435243652')); expect(result.toString()).toBe('4353425435243652'); MPZ.abs(result, MPZ('-4353425435243652')); expect(result.toString()).toBe('4353425435243652'); MPZ.abs(result, 4353425435243652); expect(result.toString()).toBe('4353425435243652'); MPZ.abs(result, -4353425435243652); expect(result.toString()).toBe('4353425435243652'); }); test('abs exceptions', () => { expect(() => { MPZ.abs(1); }).toThrow(); expect(() => { MPZ.abs(MPZ(1)); }).toThrow(); });