mpzjs
Version:
Arbitrary-precision integer arithmetic using libgmp
49 lines (42 loc) • 1.64 kB
JavaScript
const MPZ = require('../');
test('neg', () => {
expect(
MPZ(
'433593290010590489671135819286259593426549306666324008679782084292'
+ '2446494189019075159822930571858728009485237489829138626896756141'
+ '8738958337632249177044975686477011571044266'
).neg().toString()
).toBe(
'-433593290010590489671135819286259593426549306666324008679782084292244'
+ '64941890190751598229305718587280094852374898291386268967561418738958'
+ '337632249177044975686477011571044266'
);
expect(
MPZ(
'-43359329001059048967113581928625959342654930666632400867978208429'
+ '2244649418901907515982293057185872800948523748982913862689675614'
+ '18738958337632249177044975686477011571044266'
).neg().toString()
).toBe(
'4335932900105904896711358192862595934265493066663240086797820842922446'
+ '49418901907515982293057185872800948523748982913862689675614187389583'
+ '37632249177044975686477011571044266'
);
const result = MPZ();
MPZ.neg(result, MPZ('4353425435243652'));
expect(result.toString()).toBe('-4353425435243652');
MPZ.neg(result, MPZ('-4353425435243652'));
expect(result.toString()).toBe('4353425435243652');
MPZ.neg(result, 4353425435243652);
expect(result.toString()).toBe('-4353425435243652');
MPZ.neg(result, -4353425435243652);
expect(result.toString()).toBe('4353425435243652');
});
test('neg exceptions', () => {
expect(() => {
MPZ.neg(1);
}).toThrow();
expect(() => {
MPZ.neg(MPZ(1));
}).toThrow();
});