/
test.js
29 lines (23 loc) · 1.17 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var test = require('tape');
var c = require('number-crunch');
var mulinv = require('./');
test('basic tests', function (t) {
var r = mulinv(c.parse('42'), c.parse('2017'));
t.equal(c.stringify(r), '1969');
r = mulinv(c.parse('40'), c.parse('1'));
t.equal(c.stringify(r), '0');
r = mulinv(c.parse('52'), c.parse('-217'));
t.equal(c.stringify(r), '96');
r = mulinv(c.parse('-486'), c.parse('217'));
t.equal(c.stringify(r), '121');
r = mulinv(c.parse('40'), c.parse('2018'));
t.deepEqual(r, [-1]);
t.end();
});
test('big numbers', function (t) {
var a = c.parse('30713072986648264248887166562070032015009664848407762883676096376693608094600388616944018571146254527268029398244351606463192938277198713517319816096235359203163502851757659412432223286716207261901805');
var b = c.parse('13347016516080062149846863675764710368789128318419870672963883564813210964555745736325457403042511985154368512351877417728615726722183330041573196309258142');
var r = mulinv(a, b);
t.equal(c.stringify(r), '3275913053044795228632549612446030751489177482829373200594611148921570209553382465050145163963136382997959378895082965065022886276056181027187071322752653');
t.end();
});