|
1 | 1 | import test from 'ava';
|
2 | 2 | import { _add , _sub , _mul , _div , _pow , _cmp , _cmp_no_bounds , _simplify } from '../../src';
|
3 | 3 |
|
4 |
| -import int from 'int' ; |
5 |
| -import BN from 'bn.js' ; |
6 |
| -import { ZZ } from '@aureooms/js-integer' ; |
7 |
| - |
8 | 4 | const GOOGOL = '10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ;
|
9 | 5 |
|
| 6 | +import { ALU } from './_fixtures' ; |
| 7 | + |
10 | 8 | function binary ( t , alu , [ [ _x , _y , factory ] , a , b , c , d , e ] ) {
|
11 | 9 |
|
12 | 10 | const apply = factory( alu );
|
@@ -68,65 +66,6 @@ unary.title = ( _ , alu , [ [ name , impl ] , a , b , e ] ) => {
|
68 | 66 | return `${name}<${impl.name}, ${alu.name}> ${name}(${a}/${b}) = ${e}` ;
|
69 | 67 | } ;
|
70 | 68 |
|
71 |
| -const ALU = [ |
72 |
| - { |
73 |
| - name : 'int', |
74 |
| - add : (a, b) => a.add(b), |
75 |
| - sub : (a, b) => a.sub(b), |
76 |
| - mul : (a, b) => a.mul(b), |
77 |
| - div : (a, b) => a.div(b), |
78 |
| - reg : x => int(x), |
79 |
| - str : x => x.toString(), |
80 |
| - jz : x => x.eq(0), |
81 |
| - lt0 : x => x.lt(0), |
82 |
| - cmp : (a,b) => a.cmp(b), |
83 |
| - neg : x => x.neg(), |
84 |
| - sgn : x => x.cmp(0), |
85 |
| - divmod : (a,b) => [a.div(b), a.mod(b)], |
86 |
| - pown : (x,n) => x.pow(n), |
87 |
| - }, |
88 |
| - { |
89 |
| - name : 'bn.js', |
90 |
| - add : (a, b) => a.add(b), |
91 |
| - sub : (a, b) => a.sub(b), |
92 |
| - mul : (a, b) => a.mul(b), |
93 |
| - div : (a, b) => a.div(b), |
94 |
| - reg : x => new BN(x), |
95 |
| - str : x => x.toString(), |
96 |
| - jz : x => x.eqn(0), |
97 |
| - lt0 : x => x.ltn(0), |
98 |
| - cmp : (a,b) => a.cmp(b), |
99 |
| - sgn : x => x.cmpn(0), |
100 |
| - neg : x => x.neg(), |
101 |
| - divmod : (a,b) => { |
102 |
| - const { div , mod } = a.divmod(b) ; |
103 |
| - return [div, mod] ; |
104 |
| - } , |
105 |
| - egcd : (a,b) => { |
106 |
| - const gcd = a.gcd(b) ; |
107 |
| - return { u: b.div(gcd), v: a.div(gcd) } ; |
108 |
| - } , |
109 |
| - pown : (x,n) => x.pow(new BN(n)), |
110 |
| - }, |
111 |
| - { |
112 |
| - name : '@aureooms/js-integer', |
113 |
| - add : (a, b) => a.add(b), |
114 |
| - sub : (a, b) => a.sub(b), |
115 |
| - mul : (a, b) => a.mul(b), |
116 |
| - div : (a, b) => a.div(b), |
117 |
| - reg : x => ZZ.from(x), |
118 |
| - str : x => x.toString(), |
119 |
| - jz : x => x.iszero(), |
120 |
| - lt0 : x => x.sign() < 0, |
121 |
| - cmp : (a,b) => a.cmp(b), |
122 |
| - sgn : x => x.sign(), |
123 |
| - neg : x => x.opposite(), |
124 |
| - divmod : (a,b) => a.divmod(b), |
125 |
| - egcd : (a,b) => a.egcd(b), |
126 |
| - pown : (x,n) => x.pown(n), |
127 |
| - } |
128 |
| -]; |
129 |
| - |
130 | 69 | const add = [ 'add' , '+' , [ _add ] , binary ] ;
|
131 | 70 | const sub = [ 'sub' , '-' , [ _sub ] , binary ] ;
|
132 | 71 | const mul = [ 'mul' , '*' , [ _mul ] , binary ] ;
|
|
0 commit comments