diff --git a/_benchmark/.gitignore b/_benchmark/.gitignore new file mode 100644 index 0000000..5f0a3a7 --- /dev/null +++ b/_benchmark/.gitignore @@ -0,0 +1 @@ +/yarn.lock diff --git a/_benchmark/index.js b/_benchmark/index.js new file mode 100644 index 0000000..3778c8d --- /dev/null +++ b/_benchmark/index.js @@ -0,0 +1,459 @@ +/* global BigInt */ +/* eslint-disable new-cap, no-new, no-unused-expressions */ + +const ArgumentParser = require('argparse').ArgumentParser; +var benchmark = require('benchmark'); +var crypto = require('crypto'); +var XorShift128Plus = require('xorshift.js').XorShift128Plus; + +const { ZZ , DEFAULT_DISPLAY_BASE , DEFAULT_REPRESENTATION_BASE } = require('..'); +const bn = require('bn.js'); +let bignum; +try { + bignum = require('bignum'); +} catch (err) { + console.log('Load bignum error: ' + err.message.split('\n')[0]); +} +const sjcl = require('eccjs').sjcl.bn; +const bigi = require('bigi'); +const BigInteger = require('js-big-integer').BigInteger; +const JSBI = require('jsbi'); +const SilentMattBigInteger = require('biginteger').BigInteger; + +const parser = new ArgumentParser(); +parser.addArgument(['-s', '--seed'], {defaultValue: process.env.SEED || crypto.randomBytes(16).toString('hex')}); +parser.addArgument(['-l', '--libs'], {defaultValue: '.'}); +parser.addArgument(['-b', '--benches'], {defaultValue: '.'}); +parser.addArgument(['-f', '--fast'], {action: 'storeTrue'}); +const args = parser.parseArgs(); +const seed = args.seed; +const filter = new RegExp(args.libs, 'i'); +const re = new RegExp(args.benches, 'i'); +const fast = args.fast; + +const benchmarks = []; + +console.log('args:', args); +console.log('DEFAULT_DISPLAY_BASE:', DEFAULT_DISPLAY_BASE); +console.log('DEFAULT_REPRESENTATION_BASE:', DEFAULT_REPRESENTATION_BASE); + +const prng = new XorShift128Plus(seed); + +const NFIXTURES = 25; +var fixtures = []; +var findex = 0; +function findexRefresh () { + if (++findex === fixtures.length) findex = 0; +} + +const k256 = 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f' ; + +function add (op, ...args) { + const key = op + '-' + args.join('-'); + benchmarks.push({ + name: key, + start: function start () { + var suite = new benchmark.Suite(); + + console.log('Benchmarking: ' + key); + + Object.keys(fns).forEach(function (name) { + if (!filter.test(name)) return ; + if (name === 'BigInt' && typeof BigInt === 'undefined') return ; + if (name === 'bignum' && bignum === undefined) return ; + + const opFn = fns[name][op]; + if (!opFn) return; + if (!(opFn instanceof Function)) throw new Error(`opFN is not a function: ${opFN}`) ; + const fixture = fixtures[findex][name]; + + if (args.length === 1) { + const x = fixture.args[args[0]]; + const outs = fixture.outs; + const testFn = () => outs[key] = opFn(x) ; + suite.add(name + '#' + key, testFn, { + onStart: findexRefresh, + onCycle: findexRefresh + }); + } + else if (args.length === 2) { + const a = fixture.args[args[0]]; + const b = fixture.args[args[1]]; + const outs = fixture.outs; + const testFn = () => outs[key] = opFn(a, b) ; + suite.add(name + '#' + key, testFn, { + onStart: findexRefresh, + onCycle: findexRefresh + }); + } + else throw new Error('Too many args.') ; + }); + + suite + .on('cycle', function (event) { + console.log(String(event.target)); + }) + .on('complete', function () { + console.log('------------------------'); + console.log('Fastest is ' + this.filter('fastest')[0].name); + }) + .run(); + + console.log('========================'); + } + }); +} + +function start () { + + benchmarks + .filter(function (b) { + return re.test(b.name); + }) + .forEach(function (b) { + b.start(); + }); +} + +if (fast) { + console.log('Running in fast mode...'); + benchmark.options.minTime = 0.3; + benchmark.options.maxTime = 1; + benchmark.options.minSamples = 3; +} else { + benchmark.options.minTime = 3; + benchmark.options.minSamples = 10; +} + +const fns = { + BigInt: { + from10: s => BigInt(s), + from16: s => BigInt('0x'+s), + to10: x => x.toString(10), + to16: x => x.toString(16), + add: (a,b) => a + b, + sub: (a,b) => a - b, + mul: (a,b) => a * b, + sqr: x => x**2n, + pow: (a,b) => a**b, + div: (a,b) => a / b, + mod: (a, b) => { + const remainder = a % b; + return remainder < 0 ? remainder + b : remainer; + }, + + toRed: x => x % k256_BigInt, + fromRed: x => x, + sqrm: x => (a**2) % k256_BigInt, + powm: (a,b) => (a**b) % k256_BigInt, + } , + 'bn.js': { + from10: s => new bn(s, 10), + from16: s => new bn(s, 16), + to10: x => x.toString(10), + to16: x => x.toString(16), + add: (a,b) => a.add(b), + sub: (a,b) => a.sub(b), + mul: (a,b) => a.mul(b), + sqr: x => x.mul(x), + pow: (a,b) => a.pow(b), + div: (a,b) => a.div(b), + mod: (a,b) => a.mod(b), + + toRed: x => x.toRed(bn.red('k256')), + fromRed: x => x.fromRed(), + sqrm: x => x.redSqr(), + powm: (a,b) => a.redPow(b), + invm: x => x.redInvm(), + + gcd: (a,b) => a.gcd(b), + egcd: (a,b) => a.egcd(b), + } , + '@aureooms/js-integer': { + from10: s => ZZ.from(s, 10), + from16: s => ZZ.from(s, 16), + to10: x => x.toString(10), + to16: x => x.toString(16), + add: (a,b) => a.add(b), + sub: (a,b) => a.sub(b), + mul: (a,b) => a.mul(b), + sqr: x => x.square(), + pow: (a,b) => a.pow(b), + div: (a,b) => a.div(b), + mod: (a,b) => a.mod(b), + + gcd: (a,b) => a.gcd(b), + egcd: (a,b) => a.egcd(b), + } , + + jsbi: { + from10: s => JSBI.BigInt(s), + from16: s => JSBI.BigInt('0x'+s), + to10: x => x.toString(10), + to16: x => x.toString(16), + add: (a,b) => JSBI.add(a, b), + sub: (a,b) => JSBI.subtract(a, b), + mul: (a,b) => JSBI.multiply(a, b), + sqr: x => JSBI.multiply(x, x), + pow: (a, b) => JSBI.exponentiate(a, b), + div: (a,b) => JSBI.divide(a, b), + mod: (a, b) => { + const remainder = JSBI.remainder(a,b); + return JSBI.lessThan(remainder,JSBI.BigInt(0)) + ? JSBI.add(remainder,b) + : remainder; + }, + }, + yaffle: { + from10: s => BigInteger.BigInt(s), + from16: s => BigInteger.BigInt('0x'+s), + to10: x => x.toString(10), + to16: x => x.toString(16), + add: (a,b) => BigInteger.add(a, b), + sub: (a,b) => BigInteger.subtract(a, b), + mul: (a,b) => BigInteger.multiply(a, b), + sqr: x => BigInteger.multiply(x, x), + pow: (a, b) => BigInteger.exponentiate(a, b), + div: (a,b) => BigInteger.divide(a, b), + mod: (a, b) => { + const remainder = BigInteger.remainder(a,b); + return BigInteger.lessThan(remainder,BigInteger.BigInt(0)) + ? BigInteger.add(remainder,b) + : remainder; + }, + }, + bigi: { + from10: s => new bigi(s, 10), + from16: s => new bigi(s, 16), + to10: x => x.toString(10), + to16: x => x.toString(16), + add: (a,b) => a.add(b), + sub: (a,b) => a.subtract(b), + mul: (a,b) => a.multiply(b), + sqr: x => x.square(), + pow: (a,b) => a.pow(b), + div: (a,b) => a.divide(b), + mod: (a,b) => a.remainder(b), + + gcd: (a,b) => a.gcd(b), + }, + 'silentmatt-biginteger': { + from10: s => SilentMattBigInteger.parse(s, 10), + from16: s => SilentMattBigInteger.parse(s, 16), + to10: x => x.toString(10), + to16: x => x.toString(16).toLowerCase(), + add: (a,b) => a.add(b), + sub: (a,b) => a.subtract(b), + mul: (a,b) => a.multiply(b), + sqr: x => x.square(x), + pow: (a,b) => a.pow(b), + div: (a,b) => a.quotient(b), + mod: (a, b) => { + const remainder = a.remainder(b); + return remainder.isNegative() + ? remainder.add(b) + : remainder; + }, + }, + bignum: { + from10: s => new bignum(s, 10), + from16: s => new bignum(s, 16), + to10: x => x.toString(10), + to16: x => x.toString(16).replace(/^0+/, ''), + add: (a,b) => a.add(b), + sub: (a,b) => a.sub(b), + mul: (a,b) => a.mul(b), + sqr: x => x.mul(x), + pow: (a,b) => a.pow(b), + div: (a,b) => a.div(b), + mod: (a,b) => a.mod(b), + fromRed: x => x, + toRed: x => x.mod(k256_bignum), + powm: (a,b) => a.powm(b, k256_bignum), + sqrm: x => a.pown(2, k256_bignum), + invm: x => x.invertm(k256_bignum), + } , + sjcl: { + from10: undefined, + from16: s => new sjcl(s), + to10: undefined, + to16: x => x.toString().slice(2), + add: (a,b) => a.add(b), + sub: (a,b) => a.sub(b), + mul: (a,b) => a.mul(b), + sqr: x => x.mul(x), + pow: (a,b) => a.power(b), + fromRed: x => x, + toRed: x => new sjcl.prime.p256k(x), + invm: x => x.inverseMod(k256_sjcl), + sqrm: x => x.square().fullReduce(), + } + +} ; + +const k256_BigInt = fns.BigInt.from16(k256); +const k256_bignum = fns.bignum.from16(k256); +const k256_sjcl = fns.sjcl.from16(k256); + +fns.BigInt.k256 = k256_BigInt ; +fns.bignum.k256 = k256_bignum ; +fns.sjcl.k256 = k256_sjcl ; +fns['bn.js'].k256 = 'k256' ; + +function newFixture ( ) { + const fixture = {}; + + const _a32 = prng.randomBytes(32).toString('hex'); + const _b32 = prng.randomBytes(32).toString('hex'); + const _a64 = prng.randomBytes(64).toString('hex'); + const _b64 = prng.randomBytes(64).toString('hex'); + const _a128 = prng.randomBytes(128).toString('hex'); + const _b128 = prng.randomBytes(128).toString('hex'); + const _a256 = prng.randomBytes(256).toString('hex'); + const _b256 = prng.randomBytes(256).toString('hex'); + const _a512 = prng.randomBytes(512).toString('hex'); + const _b512 = prng.randomBytes(512).toString('hex'); + const _a768 = prng.randomBytes(768).toString('hex'); + const _b768 = prng.randomBytes(768).toString('hex'); + const _a1024 = prng.randomBytes(1024).toString('hex'); + const _b1024 = prng.randomBytes(1024).toString('hex'); + const _a2048 = prng.randomBytes(2048).toString('hex'); + const _b2048 = prng.randomBytes(2048).toString('hex'); + const _a4096 = prng.randomBytes(4096).toString('hex'); + const _b4096 = prng.randomBytes(4096).toString('hex'); + const _a8192 = prng.randomBytes(8192).toString('hex'); + const _b8192 = prng.randomBytes(8192).toString('hex'); + + const a10base = new bn(_a32, 16).toString(10); + const a16base = new bn(_b32, 16).toString(16); + + const init = fn => { + const a32 = fn.from16(_a32); + const b32 = fn.from16(_b32); + const a64 = fn.from16(_a64); + const b64 = fn.from16(_b64); + const a128 = fn.from16(_a128); + const b128 = fn.from16(_b128); + const a256 = fn.from16(_a256); + const b256 = fn.from16(_b256); + const a512 = fn.from16(_a512); + const b512 = fn.from16(_b512); + const a768 = fn.from16(_a768); + const b768 = fn.from16(_b768); + const a1024 = fn.from16(_a1024); + const b1024 = fn.from16(_b1024); + const a2048 = fn.from16(_a2048); + const b2048 = fn.from16(_b2048); + const a4096 = fn.from16(_a4096); + const b4096 = fn.from16(_b4096); + const a8192 = fn.from16(_a8192); + const b8192 = fn.from16(_b8192); + const x = fn.from16('2adbeef'); + const as1 = fn.add(fn.sqr(a32), x); + const am1 = fn.toRed && fn.toRed(a32); + const pow1 = fn.fromRed && fn.fromRed(am1); + return { + a32, b32, a64, b64, a128, b128, a256, b256, a512, b512, a768, b768, + _a32, _b32, _a64, _b64, _a128, _b128, _a256, _b256, _a512, _b512, _a768, _b768, + a1024, b1024, a2048, b2048, + a4096, b4096, a8192, b8192, + _a1024, _b1024, _a2048, _b2048, + _a4096, _b4096, _a8192, _b8192, + as1, am1, pow1, a10base, a16base, + } ; + } + + Object.keys(fns).forEach( name => { + if(!filter.test(name)) return; + fixture[name] = {}; + fixture[name].args = init(fns[name]); + fixture[name].outs = {}; + }) ; + + return fixture; + +} + +while (fixtures.length < NFIXTURES) fixtures.push(newFixture()) ; + +add('from10', 'a10base'); +add('from16', 'a16base'); + +const ALL = [ + 'a32' , + 'a64' , + 'a128' , + 'a256' , + 'a512' , + 'a768' , + 'a1024' , + 'a2048' , + 'a4096' , + 'a8192' , +] ; + +for ( const x of ALL ) add('from16', '_'+x) ; +for ( const x of ALL ) add('to16', x) ; + +const ALL_OPS = [ + [ 'a32', 'b32' ] , + [ 'a64', 'b64' ] , + [ 'a128', 'b128' ] , + [ 'a256', 'b256' ] , + [ 'a512', 'b512' ] , + [ 'a768', 'b768' ] , + [ 'a1024', 'b1024' ] , + [ 'a2048', 'b2048' ] , + [ 'a4096', 'b4096' ] , + [ 'a8192', 'b8192' ] , +] ; + +for ( const [ a , b ] of ALL_OPS ) add('add', a, b) ; +for ( const [ a , b ] of ALL_OPS ) add('sub', a, b) ; +for ( const [ a , b ] of ALL_OPS ) add('mul', a, b) ; +for ( const [ a , b ] of ALL_OPS ) add('div', a, b) ; + +add('sqr', 'a32'); +add('div', 'as1', 'a32'); +add('mod', 'as1', 'a32'); +add('sqrm', 'am1'); +add('powm', 'am1', 'pow1'); +add('invm', 'am1'); +add('gcd', 'a32', 'b32'); +add('egcd', 'a32', 'b32'); + +start(); + + +// Forces ALL computations ? +const results = new Array(NFIXTURES) ; +for ( let i = 0; i < NFIXTURES; ++i ) { + results[i] = {}; + Object.keys(fns).forEach( name => { + if(!filter.test(name)) return; + const fn = fns[name]; + const fixture = fixtures[i][name]; + Object.keys(fixture.outs).forEach( key => { + results[i][key] = results[i][key] || {} ; + + const result = fixture.outs[key] ; + const str = result.constructor.prototype === String.prototype ? result : fn.to16(result).toLowerCase() ; + results[i][key][name] = str; + }) ; + } ) ; + + for ( const key in results[i] ) { + const theseResults = results[i][key] ; + const distinctResults = new Set(Object.values(theseResults)); + if (distinctResults.size !== 1) { + console.error('DIFFERENT OUTPUTS for', i, key) ; + console.error(distinctResults) ; + console.error(i, key, theseResults) ; + console.error(fixtures[i]) ; + } + else { + console.error(i, key, JSON.stringify(Object.keys(theseResults)), 'OK') ; + } + } + +} diff --git a/_benchmark/package.json b/_benchmark/package.json new file mode 100644 index 0000000..d39693c --- /dev/null +++ b/_benchmark/package.json @@ -0,0 +1,24 @@ +{ + "name": "_benchmark", + "version": "1.0.0", + "description": "", + "license": "MIT", + "author": "", + "main": "index.js", + "scripts": { + "bench": "node index.js" + }, + "dependencies": { + "benchmark": "^2.1.4", + "bigi": "1.4.2", + "biginteger": "1.0.3", + "bn.js": "^5.1.1", + "eccjs": "0.3.1", + "js-big-integer": "3.0.1", + "jsbi": "^3.1.2", + "xorshift.js": "^1.0.5" + }, + "optionalDependencies": { + "bignum": "0.13.1" + } +} diff --git a/_profile/.gitignore b/_profile/.gitignore new file mode 100644 index 0000000..ae0e7b5 --- /dev/null +++ b/_profile/.gitignore @@ -0,0 +1,2 @@ +*.0x/ +/yarn.lock diff --git a/_profile/add.js b/_profile/add.js new file mode 100644 index 0000000..80a58c4 --- /dev/null +++ b/_profile/add.js @@ -0,0 +1,59 @@ +console.time('prepare'); +require('@babel/polyfill'); +const crypto = require('crypto'); +const ArgumentParser = require('argparse').ArgumentParser; +//const itertools = require('@aureooms/js-itertools'); +const XorShift128Plus = require('xorshift.js').XorShift128Plus; +const { ZZ , DEFAULT_DISPLAY_BASE , DEFAULT_REPRESENTATION_BASE } = require('..'); +const BN = require('bn.js'); + +const parser = new ArgumentParser(); +parser.addArgument(['M'], {defaultValue: 1000, nargs: '?'}); +parser.addArgument(['-N'], {defaultValue: 1000}); +parser.addArgument(['-s'], {defaultValue: process.env.SEED || crypto.randomBytes(16).toString('hex')}); +const args = parser.parseArgs(); +const M = args.M; +const N = args.N; +const seed = args.s; + +console.log('operand size (bytes):', M); +console.log('number of operations:', N); +console.log('seed:', seed); + +const MAX_PRINT_DIGITS = 79; +const _show = _x => _x.length <= MAX_PRINT_DIGITS ? + _x : + _x.slice(0,(MAX_PRINT_DIGITS-3)/2) + '...' + _x.slice(_x.length-(MAX_PRINT_DIGITS-3)/2) ; + +const prng = new XorShift128Plus(seed); +const _x = prng.randomBytes(M).toString('hex'); +console.log('_x:', _show(_x)); +const _y = prng.randomBytes(M).toString('hex'); +console.log('_y:', _show(_y)); + +let x = ZZ.from(_x, 16); +const y = ZZ.from(_y, 16); +//let x = BigInt('0x'+_x) ; +//const y = BigInt('0x'+_y) ; +//let x = new BN(_x,16) ; +//const y = new BN(_y,16) ; +let z = x; + +console.log('limbs x:', x.limbs.length); +console.log('limbs y:', y.limbs.length); +console.log('DEFAULT_DISPLAY_BASE:', DEFAULT_DISPLAY_BASE); +console.log('DEFAULT_REPRESENTATION_BASE:', DEFAULT_REPRESENTATION_BASE); + +console.timeEnd('prepare'); + +console.time('loop'); +for (let k = 0; k < N; ++k) { + //x *= y; + z = z.add(y); + z = z.sub(y); + //x = x + y; + //x = x - y; +} +console.timeEnd('loop'); + +console.log(z.toString(16) === z.toString(16) ? 'OK' : 'ERROR: NOT OK'); diff --git a/_profile/iadd.js b/_profile/iadd.js new file mode 100644 index 0000000..aa6a486 --- /dev/null +++ b/_profile/iadd.js @@ -0,0 +1,48 @@ +console.time('prepare'); +require('@babel/polyfill'); +const crypto = require('crypto'); +const ArgumentParser = require('argparse').ArgumentParser; +//const itertools = require('@aureooms/js-itertools'); +const XorShift128Plus = require('xorshift.js').XorShift128Plus; +const { ZZ } = require('..'); +const BN = require('bn.js'); + +const parser = new ArgumentParser(); +parser.addArgument(['M'], {defaultValue: 1000, nargs: '?'}); +parser.addArgument(['-N'], {defaultValue: 1000}); +parser.addArgument(['-s'], {defaultValue: process.env.SEED || crypto.randomBytes(16).toString('hex')}); +const args = parser.parseArgs(); +const M = args.M; +const N = args.N; +const seed = args.s; + +console.log('operand size (bytes):', M); +console.log('number of operations:', N); +console.log('seed:', seed); + +const prng = new XorShift128Plus(seed); +const _x = prng.randomBytes(M).toString('hex'); +console.log('_x:', _x); +const _y = prng.randomBytes(M).toString('hex'); +console.log('_y:', _y); + +let x = ZZ.from(_x, 16); +const y = ZZ.from(_y, 16); +//let x = BigInt('0x'+_x) ; +//const y = BigInt('0x'+_y) ; +//let x = new BN(_x,16) ; +//const y = new BN(_y,16) ; + +console.timeEnd('prepare'); + +console.time('loop'); +for (let k = 0; k < N; ++k) { + //x *= y; + x.iadd(y); + x.isub(y); + //x = x + y; + //x = x - y; +} +console.timeEnd('loop'); + +if (Math.random() < 0.0001) console.log(x); diff --git a/_profile/mod.js b/_profile/mod.js new file mode 100644 index 0000000..efc5738 --- /dev/null +++ b/_profile/mod.js @@ -0,0 +1,50 @@ +console.time('prepare'); +require('@babel/polyfill'); +const crypto = require('crypto'); +const ArgumentParser = require('argparse').ArgumentParser; +//const itertools = require('@aureooms/js-itertools'); +const XorShift128Plus = require('xorshift.js').XorShift128Plus; +const { THRESHOLD_MUL_TOOM22 , THRESHOLD_DIV_DC } = require('@aureooms/js-integer-big-endian'); +const { ZZ , DEFAULT_DISPLAY_BASE , DEFAULT_REPRESENTATION_BASE } = require('..'); +const BN = require('bn.js'); + +const parser = new ArgumentParser(); +parser.addArgument(['M'], {defaultValue: 1000, nargs: '?'}); +parser.addArgument(['-N'], {defaultValue: 1000}); +parser.addArgument(['-s'], {defaultValue: process.env.SEED || crypto.randomBytes(16).toString('hex')}); +const args = parser.parseArgs(); +const M = args.M; +const N = args.N; +const seed = args.s; + +console.log('operand size (bytes):', M); +console.log('number of operations:', N); +console.log('seed:', seed); + +const prng = new XorShift128Plus(seed); +const _x = prng.randomBytes(M).toString('hex'); +console.log('_x:', _x); +const _y = prng.randomBytes(M).toString('hex'); +console.log('_y:', _y); + +let x = ZZ.from(_x, 16); +const y = ZZ.from(_y, 16); +x.iadd(y.square()); + +console.log('limbs x:', x.limbs.length); +console.log('limbs y:', y.limbs.length); +console.log('DEFAULT_DISPLAY_BASE:', DEFAULT_DISPLAY_BASE); +console.log('DEFAULT_REPRESENTATION_BASE:', DEFAULT_REPRESENTATION_BASE); +console.log('THRESHOLD_MUL_TOOM22:', THRESHOLD_MUL_TOOM22); +console.log('THRESHOLD_DIV_DC:', THRESHOLD_DIV_DC); + +console.timeEnd('prepare'); + +console.time('loop'); +let z; +for (let k = 0; k < N; ++k) { + z = x.mod(y); +} +console.timeEnd('loop'); + +console.log(z.toString(16) === z.toString(16) ? 'OK' : 'ERROR: NOT OK'); diff --git a/_profile/mul.js b/_profile/mul.js new file mode 100644 index 0000000..2e15b7d --- /dev/null +++ b/_profile/mul.js @@ -0,0 +1,46 @@ +console.time('prepare'); +require('@babel/polyfill'); +const crypto = require('crypto'); +const ArgumentParser = require('argparse').ArgumentParser; +//const itertools = require('@aureooms/js-itertools'); +const XorShift128Plus = require('xorshift.js').XorShift128Plus; +const { THRESHOLD_MUL_TOOM22 } = require('@aureooms/js-integer-big-endian'); +const { ZZ } = require('..'); +const BN = require('bn.js'); + +const parser = new ArgumentParser(); +parser.addArgument(['M'], {defaultValue: 1000, nargs: '?'}); +parser.addArgument(['-N'], {defaultValue: 1000}); +parser.addArgument(['-s'], {defaultValue: process.env.SEED || crypto.randomBytes(16).toString('hex')}); +const args = parser.parseArgs(); +const M = args.M; +const N = args.N; +const seed = args.s; + +console.log('operand size (bytes):', M); +console.log('number of operations:', N); +console.log('seed:', seed); + +const prng = new XorShift128Plus(seed); +const _x = prng.randomBytes(M).toString('hex'); +console.log('_x:', _x); +const _y = prng.randomBytes(M).toString('hex'); +console.log('_y:', _y); + +let x = ZZ.from(_x, 16); +const y = ZZ.from(_y, 16); + +console.log('limbs x:', x.limbs.length); +console.log('limbs y:', y.limbs.length); +console.log('THRESHOLD_MUL_TOOM22:', THRESHOLD_MUL_TOOM22); + +console.timeEnd('prepare'); + +console.time('loop'); +let z; +for (let k = 0; k < N; ++k) { + z = x.mul(y); +} +console.timeEnd('loop'); + +if (Math.random() < 0.0001) console.log(z); diff --git a/_profile/package.json b/_profile/package.json new file mode 100644 index 0000000..a8023b3 --- /dev/null +++ b/_profile/package.json @@ -0,0 +1,17 @@ +{ + "name": "_profile", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "profile": "0x" + }, + "dependencies": { + "0x": "^4.9.1", + "@babel/polyfill": "^7.8.7", + "argparse": "^1.0.10", + "bn.js": "^5.1.1", + "crypto": "^1.0.1", + "xorshift.js": "^1.0.5" + } +} diff --git a/package.json b/package.json index 57c824c..0c776dd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@aureooms/js-integer", "description": "Integers for JavaScript", - "version": "6.0.0", + "version": "7.0.0", "author": "Aurélien Ooms ", "ava": { "require": [ @@ -11,7 +11,7 @@ "files": [ "test/src/**/*" ], - "timeout": "3m", + "timeout": "5m", "concurrency": 8 }, "babel": { @@ -29,7 +29,7 @@ }, "dependencies": { "@aureooms/js-error": "^4.0.0", - "@aureooms/js-integer-big-endian": "^8.0.0" + "@aureooms/js-integer-big-endian": "^9.0.0" }, "devDependencies": { "@aureooms/js-algorithms": "3.0.7", @@ -43,7 +43,7 @@ "@babel/polyfill": "7.8.7", "@babel/preset-env": "7.9.6", "@babel/register": "7.9.0", - "ava": "3.8.1", + "ava": "3.8.2", "coveralls": "3.1.0", "esdoc": "1.1.0", "esdoc-inject-script-plugin": "1.0.0", diff --git a/src/DEFAULT_REPRESENTATION_BASE.js b/src/DEFAULT_REPRESENTATION_BASE.js index d016259..bddee33 100644 --- a/src/DEFAULT_REPRESENTATION_BASE.js +++ b/src/DEFAULT_REPRESENTATION_BASE.js @@ -1,4 +1,5 @@ -import { DEFAULT_DISPLAY_BASE } from './' ; +//import { DEFAULT_DISPLAY_BASE } from './' ; +import { MAX_BASE } from './_limits' ; /* * Biggest power of DEFAULT_DISPLAY_BASE whose square holds in a single double @@ -6,4 +7,7 @@ import { DEFAULT_DISPLAY_BASE } from './' ; * and for fast base DEFAULT_DISPLAY_BASE printing. On older machines with no * native doubles, it might be worth to only use ints. */ -export const DEFAULT_REPRESENTATION_BASE = Math.pow(DEFAULT_DISPLAY_BASE,Math.floor(Math.log(Math.sqrt(Math.pow(2,53)))/Math.log(DEFAULT_DISPLAY_BASE))) ; +//export const DEFAULT_REPRESENTATION_BASE = Math.pow(DEFAULT_DISPLAY_BASE,Math.floor(Math.log(Math.sqrt(Math.pow(2,53)))/Math.log(DEFAULT_DISPLAY_BASE))) ; +//export const DEFAULT_REPRESENTATION_BASE = Math.pow(16,Math.floor(Math.log(Math.sqrt(Math.pow(2,53)))/Math.log(16))) ; +//export const DEFAULT_REPRESENTATION_BASE = Math.pow(2,26) | 0; +export const DEFAULT_REPRESENTATION_BASE = MAX_BASE; diff --git a/src/_limits.js b/src/_limits.js index 33d2823..c915aba 100644 --- a/src/_limits.js +++ b/src/_limits.js @@ -2,4 +2,4 @@ export const MAX_NUMBER = Math.pow(2,53) - 1 ; export const MIN_NUMBER = -Math.pow(2,53) ; export const MIN_BASE = 2 ; -export const MAX_BASE = Math.ceil(Math.sqrt(Math.pow(2,53))) ; +export const MAX_BASE = Math.ceil(Math.sqrt(MAX_NUMBER+1)) | 0; diff --git a/test/generate.py b/test/generate.py index 5dec7a7..148a287 100644 --- a/test/generate.py +++ b/test/generate.py @@ -1,10 +1,25 @@ +from math import ceil +from math import sqrt + MAX_NUMBER = 2**53 - 1 MIN_NUMBER = -2**53 +LARGEST_BASE = ceil(sqrt(MAX_NUMBER)) +LARGEST_LIMB = LARGEST_BASE - 1 + +print('MAX_NUMBER', MAX_NUMBER) +print('MIN_NUMBER', MIN_NUMBER) +print('LARGEST_BASE', LARGEST_BASE) +print('LARGEST_LIMB', LARGEST_LIMB) + +assert(LARGEST_LIMB ** 2 < MAX_NUMBER) + hugenumbers = sorted([ + LARGEST_LIMB , + LARGEST_BASE , 91**7 , 2**30 , - 3**50 + 3**50 , ]) smallnumbers = sorted([ 1 , 3 , 7 , 9 , 11 , 17 , 22 , 24 , 27 , 29 , 1234 , 5678 ]) diff --git a/test/src/constants/DEFAULT_REPRESENTATION_BASE.js b/test/src/constants/DEFAULT_REPRESENTATION_BASE.js new file mode 100644 index 0000000..2a0349c --- /dev/null +++ b/test/src/constants/DEFAULT_REPRESENTATION_BASE.js @@ -0,0 +1,8 @@ +import test from 'ava' ; + +import { + DEFAULT_REPRESENTATION_BASE , + MAX_BASE , +} from '../../../src' ; + +test( 'DEFAULT_REPRESENTATION_BASE <= MAX_BASE' , t => { t.true(DEFAULT_REPRESENTATION_BASE <= MAX_BASE) }) ; diff --git a/test/src/integer/arithmetic/add.js b/test/src/integer/arithmetic/add.js index 0ce60fc..aa24f33 100644 --- a/test/src/integer/arithmetic/add.js +++ b/test/src/integer/arithmetic/add.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '5679' ) ; test( macro , '-1' , '5678' , '5677' ) ; test( macro , '1' , '-5678' , '-5677' ) ; test( macro , '-1' , '-5678' , '-5679' ) ; +test( macro , '1' , '94906265' , '94906266' ) ; +test( macro , '-1' , '94906265' , '94906264' ) ; +test( macro , '1' , '-94906265' , '-94906264' ) ; +test( macro , '-1' , '-94906265' , '-94906266' ) ; +test( macro , '1' , '94906266' , '94906267' ) ; +test( macro , '-1' , '94906266' , '94906265' ) ; +test( macro , '1' , '-94906266' , '-94906265' ) ; +test( macro , '-1' , '-94906266' , '-94906267' ) ; test( macro , '1' , '1073741824' , '1073741825' ) ; test( macro , '-1' , '1073741824' , '1073741823' ) ; test( macro , '1' , '-1073741824' , '-1073741823' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '5681' ) ; test( macro , '-3' , '5678' , '5675' ) ; test( macro , '3' , '-5678' , '-5675' ) ; test( macro , '-3' , '-5678' , '-5681' ) ; +test( macro , '3' , '94906265' , '94906268' ) ; +test( macro , '-3' , '94906265' , '94906262' ) ; +test( macro , '3' , '-94906265' , '-94906262' ) ; +test( macro , '-3' , '-94906265' , '-94906268' ) ; +test( macro , '3' , '94906266' , '94906269' ) ; +test( macro , '-3' , '94906266' , '94906263' ) ; +test( macro , '3' , '-94906266' , '-94906263' ) ; +test( macro , '-3' , '-94906266' , '-94906269' ) ; test( macro , '3' , '1073741824' , '1073741827' ) ; test( macro , '-3' , '1073741824' , '1073741821' ) ; test( macro , '3' , '-1073741824' , '-1073741821' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '5685' ) ; test( macro , '-7' , '5678' , '5671' ) ; test( macro , '7' , '-5678' , '-5671' ) ; test( macro , '-7' , '-5678' , '-5685' ) ; +test( macro , '7' , '94906265' , '94906272' ) ; +test( macro , '-7' , '94906265' , '94906258' ) ; +test( macro , '7' , '-94906265' , '-94906258' ) ; +test( macro , '-7' , '-94906265' , '-94906272' ) ; +test( macro , '7' , '94906266' , '94906273' ) ; +test( macro , '-7' , '94906266' , '94906259' ) ; +test( macro , '7' , '-94906266' , '-94906259' ) ; +test( macro , '-7' , '-94906266' , '-94906273' ) ; test( macro , '7' , '1073741824' , '1073741831' ) ; test( macro , '-7' , '1073741824' , '1073741817' ) ; test( macro , '7' , '-1073741824' , '-1073741817' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '5687' ) ; test( macro , '-9' , '5678' , '5669' ) ; test( macro , '9' , '-5678' , '-5669' ) ; test( macro , '-9' , '-5678' , '-5687' ) ; +test( macro , '9' , '94906265' , '94906274' ) ; +test( macro , '-9' , '94906265' , '94906256' ) ; +test( macro , '9' , '-94906265' , '-94906256' ) ; +test( macro , '-9' , '-94906265' , '-94906274' ) ; +test( macro , '9' , '94906266' , '94906275' ) ; +test( macro , '-9' , '94906266' , '94906257' ) ; +test( macro , '9' , '-94906266' , '-94906257' ) ; +test( macro , '-9' , '-94906266' , '-94906275' ) ; test( macro , '9' , '1073741824' , '1073741833' ) ; test( macro , '-9' , '1073741824' , '1073741815' ) ; test( macro , '9' , '-1073741824' , '-1073741815' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '5689' ) ; test( macro , '-11' , '5678' , '5667' ) ; test( macro , '11' , '-5678' , '-5667' ) ; test( macro , '-11' , '-5678' , '-5689' ) ; +test( macro , '11' , '94906265' , '94906276' ) ; +test( macro , '-11' , '94906265' , '94906254' ) ; +test( macro , '11' , '-94906265' , '-94906254' ) ; +test( macro , '-11' , '-94906265' , '-94906276' ) ; +test( macro , '11' , '94906266' , '94906277' ) ; +test( macro , '-11' , '94906266' , '94906255' ) ; +test( macro , '11' , '-94906266' , '-94906255' ) ; +test( macro , '-11' , '-94906266' , '-94906277' ) ; test( macro , '11' , '1073741824' , '1073741835' ) ; test( macro , '-11' , '1073741824' , '1073741813' ) ; test( macro , '11' , '-1073741824' , '-1073741813' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '5695' ) ; test( macro , '-17' , '5678' , '5661' ) ; test( macro , '17' , '-5678' , '-5661' ) ; test( macro , '-17' , '-5678' , '-5695' ) ; +test( macro , '17' , '94906265' , '94906282' ) ; +test( macro , '-17' , '94906265' , '94906248' ) ; +test( macro , '17' , '-94906265' , '-94906248' ) ; +test( macro , '-17' , '-94906265' , '-94906282' ) ; +test( macro , '17' , '94906266' , '94906283' ) ; +test( macro , '-17' , '94906266' , '94906249' ) ; +test( macro , '17' , '-94906266' , '-94906249' ) ; +test( macro , '-17' , '-94906266' , '-94906283' ) ; test( macro , '17' , '1073741824' , '1073741841' ) ; test( macro , '-17' , '1073741824' , '1073741807' ) ; test( macro , '17' , '-1073741824' , '-1073741807' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '5700' ) ; test( macro , '-22' , '5678' , '5656' ) ; test( macro , '22' , '-5678' , '-5656' ) ; test( macro , '-22' , '-5678' , '-5700' ) ; +test( macro , '22' , '94906265' , '94906287' ) ; +test( macro , '-22' , '94906265' , '94906243' ) ; +test( macro , '22' , '-94906265' , '-94906243' ) ; +test( macro , '-22' , '-94906265' , '-94906287' ) ; +test( macro , '22' , '94906266' , '94906288' ) ; +test( macro , '-22' , '94906266' , '94906244' ) ; +test( macro , '22' , '-94906266' , '-94906244' ) ; +test( macro , '-22' , '-94906266' , '-94906288' ) ; test( macro , '22' , '1073741824' , '1073741846' ) ; test( macro , '-22' , '1073741824' , '1073741802' ) ; test( macro , '22' , '-1073741824' , '-1073741802' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '5702' ) ; test( macro , '-24' , '5678' , '5654' ) ; test( macro , '24' , '-5678' , '-5654' ) ; test( macro , '-24' , '-5678' , '-5702' ) ; +test( macro , '24' , '94906265' , '94906289' ) ; +test( macro , '-24' , '94906265' , '94906241' ) ; +test( macro , '24' , '-94906265' , '-94906241' ) ; +test( macro , '-24' , '-94906265' , '-94906289' ) ; +test( macro , '24' , '94906266' , '94906290' ) ; +test( macro , '-24' , '94906266' , '94906242' ) ; +test( macro , '24' , '-94906266' , '-94906242' ) ; +test( macro , '-24' , '-94906266' , '-94906290' ) ; test( macro , '24' , '1073741824' , '1073741848' ) ; test( macro , '-24' , '1073741824' , '1073741800' ) ; test( macro , '24' , '-1073741824' , '-1073741800' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '5705' ) ; test( macro , '-27' , '5678' , '5651' ) ; test( macro , '27' , '-5678' , '-5651' ) ; test( macro , '-27' , '-5678' , '-5705' ) ; +test( macro , '27' , '94906265' , '94906292' ) ; +test( macro , '-27' , '94906265' , '94906238' ) ; +test( macro , '27' , '-94906265' , '-94906238' ) ; +test( macro , '-27' , '-94906265' , '-94906292' ) ; +test( macro , '27' , '94906266' , '94906293' ) ; +test( macro , '-27' , '94906266' , '94906239' ) ; +test( macro , '27' , '-94906266' , '-94906239' ) ; +test( macro , '-27' , '-94906266' , '-94906293' ) ; test( macro , '27' , '1073741824' , '1073741851' ) ; test( macro , '-27' , '1073741824' , '1073741797' ) ; test( macro , '27' , '-1073741824' , '-1073741797' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '5707' ) ; test( macro , '-29' , '5678' , '5649' ) ; test( macro , '29' , '-5678' , '-5649' ) ; test( macro , '-29' , '-5678' , '-5707' ) ; +test( macro , '29' , '94906265' , '94906294' ) ; +test( macro , '-29' , '94906265' , '94906236' ) ; +test( macro , '29' , '-94906265' , '-94906236' ) ; +test( macro , '-29' , '-94906265' , '-94906294' ) ; +test( macro , '29' , '94906266' , '94906295' ) ; +test( macro , '-29' , '94906266' , '94906237' ) ; +test( macro , '29' , '-94906266' , '-94906237' ) ; +test( macro , '-29' , '-94906266' , '-94906295' ) ; test( macro , '29' , '1073741824' , '1073741853' ) ; test( macro , '-29' , '1073741824' , '1073741795' ) ; test( macro , '29' , '-1073741824' , '-1073741795' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '6912' ) ; test( macro , '-1234' , '5678' , '4444' ) ; test( macro , '1234' , '-5678' , '-4444' ) ; test( macro , '-1234' , '-5678' , '-6912' ) ; +test( macro , '1234' , '94906265' , '94907499' ) ; +test( macro , '-1234' , '94906265' , '94905031' ) ; +test( macro , '1234' , '-94906265' , '-94905031' ) ; +test( macro , '-1234' , '-94906265' , '-94907499' ) ; +test( macro , '1234' , '94906266' , '94907500' ) ; +test( macro , '-1234' , '94906266' , '94905032' ) ; +test( macro , '1234' , '-94906266' , '-94905032' ) ; +test( macro , '-1234' , '-94906266' , '-94907500' ) ; test( macro , '1234' , '1073741824' , '1073743058' ) ; test( macro , '-1234' , '1073741824' , '1073740590' ) ; test( macro , '1234' , '-1073741824' , '-1073740590' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '11356' ) ; test( macro , '-5678' , '5678' , '0' ) ; test( macro , '5678' , '-5678' , '0' ) ; test( macro , '-5678' , '-5678' , '-11356' ) ; +test( macro , '5678' , '94906265' , '94911943' ) ; +test( macro , '-5678' , '94906265' , '94900587' ) ; +test( macro , '5678' , '-94906265' , '-94900587' ) ; +test( macro , '-5678' , '-94906265' , '-94911943' ) ; +test( macro , '5678' , '94906266' , '94911944' ) ; +test( macro , '-5678' , '94906266' , '94900588' ) ; +test( macro , '5678' , '-94906266' , '-94900588' ) ; +test( macro , '-5678' , '-94906266' , '-94911944' ) ; test( macro , '5678' , '1073741824' , '1073747502' ) ; test( macro , '-5678' , '1073741824' , '1073736146' ) ; test( macro , '5678' , '-1073741824' , '-1073736146' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '717897987691852588775927' ) test( macro , '-5678' , '717897987691852588770249' , '717897987691852588764571' ) ; test( macro , '5678' , '-717897987691852588770249' , '-717897987691852588764571' ) ; test( macro , '-5678' , '-717897987691852588770249' , '-717897987691852588775927' ) ; +test( macro , '94906265' , '1' , '94906266' ) ; +test( macro , '-94906265' , '1' , '-94906264' ) ; +test( macro , '94906265' , '-1' , '94906264' ) ; +test( macro , '-94906265' , '-1' , '-94906266' ) ; +test( macro , '94906265' , '3' , '94906268' ) ; +test( macro , '-94906265' , '3' , '-94906262' ) ; +test( macro , '94906265' , '-3' , '94906262' ) ; +test( macro , '-94906265' , '-3' , '-94906268' ) ; +test( macro , '94906265' , '7' , '94906272' ) ; +test( macro , '-94906265' , '7' , '-94906258' ) ; +test( macro , '94906265' , '-7' , '94906258' ) ; +test( macro , '-94906265' , '-7' , '-94906272' ) ; +test( macro , '94906265' , '9' , '94906274' ) ; +test( macro , '-94906265' , '9' , '-94906256' ) ; +test( macro , '94906265' , '-9' , '94906256' ) ; +test( macro , '-94906265' , '-9' , '-94906274' ) ; +test( macro , '94906265' , '11' , '94906276' ) ; +test( macro , '-94906265' , '11' , '-94906254' ) ; +test( macro , '94906265' , '-11' , '94906254' ) ; +test( macro , '-94906265' , '-11' , '-94906276' ) ; +test( macro , '94906265' , '17' , '94906282' ) ; +test( macro , '-94906265' , '17' , '-94906248' ) ; +test( macro , '94906265' , '-17' , '94906248' ) ; +test( macro , '-94906265' , '-17' , '-94906282' ) ; +test( macro , '94906265' , '22' , '94906287' ) ; +test( macro , '-94906265' , '22' , '-94906243' ) ; +test( macro , '94906265' , '-22' , '94906243' ) ; +test( macro , '-94906265' , '-22' , '-94906287' ) ; +test( macro , '94906265' , '24' , '94906289' ) ; +test( macro , '-94906265' , '24' , '-94906241' ) ; +test( macro , '94906265' , '-24' , '94906241' ) ; +test( macro , '-94906265' , '-24' , '-94906289' ) ; +test( macro , '94906265' , '27' , '94906292' ) ; +test( macro , '-94906265' , '27' , '-94906238' ) ; +test( macro , '94906265' , '-27' , '94906238' ) ; +test( macro , '-94906265' , '-27' , '-94906292' ) ; +test( macro , '94906265' , '29' , '94906294' ) ; +test( macro , '-94906265' , '29' , '-94906236' ) ; +test( macro , '94906265' , '-29' , '94906236' ) ; +test( macro , '-94906265' , '-29' , '-94906294' ) ; +test( macro , '94906265' , '1234' , '94907499' ) ; +test( macro , '-94906265' , '1234' , '-94905031' ) ; +test( macro , '94906265' , '-1234' , '94905031' ) ; +test( macro , '-94906265' , '-1234' , '-94907499' ) ; +test( macro , '94906265' , '5678' , '94911943' ) ; +test( macro , '-94906265' , '5678' , '-94900587' ) ; +test( macro , '94906265' , '-5678' , '94900587' ) ; +test( macro , '-94906265' , '-5678' , '-94911943' ) ; +test( macro , '94906265' , '94906265' , '189812530' ) ; +test( macro , '-94906265' , '94906265' , '0' ) ; +test( macro , '94906265' , '-94906265' , '0' ) ; +test( macro , '-94906265' , '-94906265' , '-189812530' ) ; +test( macro , '94906265' , '94906266' , '189812531' ) ; +test( macro , '-94906265' , '94906266' , '1' ) ; +test( macro , '94906265' , '-94906266' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '-189812531' ) ; +test( macro , '94906265' , '1073741824' , '1168648089' ) ; +test( macro , '-94906265' , '1073741824' , '978835559' ) ; +test( macro , '94906265' , '-1073741824' , '-978835559' ) ; +test( macro , '-94906265' , '-1073741824' , '-1168648089' ) ; +test( macro , '94906265' , '51676101935731' , '51676196841996' ) ; +test( macro , '-94906265' , '51676101935731' , '51676007029466' ) ; +test( macro , '94906265' , '-51676101935731' , '-51676007029466' ) ; +test( macro , '-94906265' , '-51676101935731' , '-51676196841996' ) ; +test( macro , '94906265' , '717897987691852588770249' , '717897987691852683676514' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '717897987691852493863984' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '-717897987691852683676514' ) ; +test( macro , '94906266' , '1' , '94906267' ) ; +test( macro , '-94906266' , '1' , '-94906265' ) ; +test( macro , '94906266' , '-1' , '94906265' ) ; +test( macro , '-94906266' , '-1' , '-94906267' ) ; +test( macro , '94906266' , '3' , '94906269' ) ; +test( macro , '-94906266' , '3' , '-94906263' ) ; +test( macro , '94906266' , '-3' , '94906263' ) ; +test( macro , '-94906266' , '-3' , '-94906269' ) ; +test( macro , '94906266' , '7' , '94906273' ) ; +test( macro , '-94906266' , '7' , '-94906259' ) ; +test( macro , '94906266' , '-7' , '94906259' ) ; +test( macro , '-94906266' , '-7' , '-94906273' ) ; +test( macro , '94906266' , '9' , '94906275' ) ; +test( macro , '-94906266' , '9' , '-94906257' ) ; +test( macro , '94906266' , '-9' , '94906257' ) ; +test( macro , '-94906266' , '-9' , '-94906275' ) ; +test( macro , '94906266' , '11' , '94906277' ) ; +test( macro , '-94906266' , '11' , '-94906255' ) ; +test( macro , '94906266' , '-11' , '94906255' ) ; +test( macro , '-94906266' , '-11' , '-94906277' ) ; +test( macro , '94906266' , '17' , '94906283' ) ; +test( macro , '-94906266' , '17' , '-94906249' ) ; +test( macro , '94906266' , '-17' , '94906249' ) ; +test( macro , '-94906266' , '-17' , '-94906283' ) ; +test( macro , '94906266' , '22' , '94906288' ) ; +test( macro , '-94906266' , '22' , '-94906244' ) ; +test( macro , '94906266' , '-22' , '94906244' ) ; +test( macro , '-94906266' , '-22' , '-94906288' ) ; +test( macro , '94906266' , '24' , '94906290' ) ; +test( macro , '-94906266' , '24' , '-94906242' ) ; +test( macro , '94906266' , '-24' , '94906242' ) ; +test( macro , '-94906266' , '-24' , '-94906290' ) ; +test( macro , '94906266' , '27' , '94906293' ) ; +test( macro , '-94906266' , '27' , '-94906239' ) ; +test( macro , '94906266' , '-27' , '94906239' ) ; +test( macro , '-94906266' , '-27' , '-94906293' ) ; +test( macro , '94906266' , '29' , '94906295' ) ; +test( macro , '-94906266' , '29' , '-94906237' ) ; +test( macro , '94906266' , '-29' , '94906237' ) ; +test( macro , '-94906266' , '-29' , '-94906295' ) ; +test( macro , '94906266' , '1234' , '94907500' ) ; +test( macro , '-94906266' , '1234' , '-94905032' ) ; +test( macro , '94906266' , '-1234' , '94905032' ) ; +test( macro , '-94906266' , '-1234' , '-94907500' ) ; +test( macro , '94906266' , '5678' , '94911944' ) ; +test( macro , '-94906266' , '5678' , '-94900588' ) ; +test( macro , '94906266' , '-5678' , '94900588' ) ; +test( macro , '-94906266' , '-5678' , '-94911944' ) ; +test( macro , '94906266' , '94906265' , '189812531' ) ; +test( macro , '-94906266' , '94906265' , '-1' ) ; +test( macro , '94906266' , '-94906265' , '1' ) ; +test( macro , '-94906266' , '-94906265' , '-189812531' ) ; +test( macro , '94906266' , '94906266' , '189812532' ) ; +test( macro , '-94906266' , '94906266' , '0' ) ; +test( macro , '94906266' , '-94906266' , '0' ) ; +test( macro , '-94906266' , '-94906266' , '-189812532' ) ; +test( macro , '94906266' , '1073741824' , '1168648090' ) ; +test( macro , '-94906266' , '1073741824' , '978835558' ) ; +test( macro , '94906266' , '-1073741824' , '-978835558' ) ; +test( macro , '-94906266' , '-1073741824' , '-1168648090' ) ; +test( macro , '94906266' , '51676101935731' , '51676196841997' ) ; +test( macro , '-94906266' , '51676101935731' , '51676007029465' ) ; +test( macro , '94906266' , '-51676101935731' , '-51676007029465' ) ; +test( macro , '-94906266' , '-51676101935731' , '-51676196841997' ) ; +test( macro , '94906266' , '717897987691852588770249' , '717897987691852683676515' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '717897987691852493863983' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '-717897987691852683676515' ) ; test( macro , '1073741824' , '1' , '1073741825' ) ; test( macro , '-1073741824' , '1' , '-1073741823' ) ; test( macro , '1073741824' , '-1' , '1073741823' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '1073747502' ) ; test( macro , '-1073741824' , '5678' , '-1073736146' ) ; test( macro , '1073741824' , '-5678' , '1073736146' ) ; test( macro , '-1073741824' , '-5678' , '-1073747502' ) ; +test( macro , '1073741824' , '94906265' , '1168648089' ) ; +test( macro , '-1073741824' , '94906265' , '-978835559' ) ; +test( macro , '1073741824' , '-94906265' , '978835559' ) ; +test( macro , '-1073741824' , '-94906265' , '-1168648089' ) ; +test( macro , '1073741824' , '94906266' , '1168648090' ) ; +test( macro , '-1073741824' , '94906266' , '-978835558' ) ; +test( macro , '1073741824' , '-94906266' , '978835558' ) ; +test( macro , '-1073741824' , '-94906266' , '-1168648090' ) ; test( macro , '1073741824' , '1073741824' , '2147483648' ) ; test( macro , '-1073741824' , '1073741824' , '0' ) ; test( macro , '1073741824' , '-1073741824' , '0' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '51676101941409' ) ; test( macro , '-51676101935731' , '5678' , '-51676101930053' ) ; test( macro , '51676101935731' , '-5678' , '51676101930053' ) ; test( macro , '-51676101935731' , '-5678' , '-51676101941409' ) ; +test( macro , '51676101935731' , '94906265' , '51676196841996' ) ; +test( macro , '-51676101935731' , '94906265' , '-51676007029466' ) ; +test( macro , '51676101935731' , '-94906265' , '51676007029466' ) ; +test( macro , '-51676101935731' , '-94906265' , '-51676196841996' ) ; +test( macro , '51676101935731' , '94906266' , '51676196841997' ) ; +test( macro , '-51676101935731' , '94906266' , '-51676007029465' ) ; +test( macro , '51676101935731' , '-94906266' , '51676007029465' ) ; +test( macro , '-51676101935731' , '-94906266' , '-51676196841997' ) ; test( macro , '51676101935731' , '1073741824' , '51677175677555' ) ; test( macro , '-51676101935731' , '1073741824' , '-51675028193907' ) ; test( macro , '51676101935731' , '-1073741824' , '51675028193907' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '717897987691852588775927' ) test( macro , '-717897987691852588770249' , '5678' , '-717897987691852588764571' ) ; test( macro , '717897987691852588770249' , '-5678' , '717897987691852588764571' ) ; test( macro , '-717897987691852588770249' , '-5678' , '-717897987691852588775927' ) ; +test( macro , '717897987691852588770249' , '94906265' , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , '94906266' , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-717897987691852493863983' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '-717897987691852683676515' ) ; test( macro , '717897987691852588770249' , '1073741824' , '717897987691853662512073' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-717897987691851515028425' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '717897987691851515028425' ) ; diff --git a/test/src/integer/arithmetic/addn.js b/test/src/integer/arithmetic/addn.js index 0d05811..eb282c8 100644 --- a/test/src/integer/arithmetic/addn.js +++ b/test/src/integer/arithmetic/addn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '5679' ) ; test( macro , '-1' , 5678 , '5677' ) ; test( macro , '1' , -5678 , '-5677' ) ; test( macro , '-1' , -5678 , '-5679' ) ; +test( macro , '1' , 94906265 , '94906266' ) ; +test( macro , '-1' , 94906265 , '94906264' ) ; +test( macro , '1' , -94906265 , '-94906264' ) ; +test( macro , '-1' , -94906265 , '-94906266' ) ; +test( macro , '1' , 94906266 , '94906267' ) ; +test( macro , '-1' , 94906266 , '94906265' ) ; +test( macro , '1' , -94906266 , '-94906265' ) ; +test( macro , '-1' , -94906266 , '-94906267' ) ; test( macro , '1' , 1073741824 , '1073741825' ) ; test( macro , '-1' , 1073741824 , '1073741823' ) ; test( macro , '1' , -1073741824 , '-1073741823' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '5681' ) ; test( macro , '-3' , 5678 , '5675' ) ; test( macro , '3' , -5678 , '-5675' ) ; test( macro , '-3' , -5678 , '-5681' ) ; +test( macro , '3' , 94906265 , '94906268' ) ; +test( macro , '-3' , 94906265 , '94906262' ) ; +test( macro , '3' , -94906265 , '-94906262' ) ; +test( macro , '-3' , -94906265 , '-94906268' ) ; +test( macro , '3' , 94906266 , '94906269' ) ; +test( macro , '-3' , 94906266 , '94906263' ) ; +test( macro , '3' , -94906266 , '-94906263' ) ; +test( macro , '-3' , -94906266 , '-94906269' ) ; test( macro , '3' , 1073741824 , '1073741827' ) ; test( macro , '-3' , 1073741824 , '1073741821' ) ; test( macro , '3' , -1073741824 , '-1073741821' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '5685' ) ; test( macro , '-7' , 5678 , '5671' ) ; test( macro , '7' , -5678 , '-5671' ) ; test( macro , '-7' , -5678 , '-5685' ) ; +test( macro , '7' , 94906265 , '94906272' ) ; +test( macro , '-7' , 94906265 , '94906258' ) ; +test( macro , '7' , -94906265 , '-94906258' ) ; +test( macro , '-7' , -94906265 , '-94906272' ) ; +test( macro , '7' , 94906266 , '94906273' ) ; +test( macro , '-7' , 94906266 , '94906259' ) ; +test( macro , '7' , -94906266 , '-94906259' ) ; +test( macro , '-7' , -94906266 , '-94906273' ) ; test( macro , '7' , 1073741824 , '1073741831' ) ; test( macro , '-7' , 1073741824 , '1073741817' ) ; test( macro , '7' , -1073741824 , '-1073741817' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '5687' ) ; test( macro , '-9' , 5678 , '5669' ) ; test( macro , '9' , -5678 , '-5669' ) ; test( macro , '-9' , -5678 , '-5687' ) ; +test( macro , '9' , 94906265 , '94906274' ) ; +test( macro , '-9' , 94906265 , '94906256' ) ; +test( macro , '9' , -94906265 , '-94906256' ) ; +test( macro , '-9' , -94906265 , '-94906274' ) ; +test( macro , '9' , 94906266 , '94906275' ) ; +test( macro , '-9' , 94906266 , '94906257' ) ; +test( macro , '9' , -94906266 , '-94906257' ) ; +test( macro , '-9' , -94906266 , '-94906275' ) ; test( macro , '9' , 1073741824 , '1073741833' ) ; test( macro , '-9' , 1073741824 , '1073741815' ) ; test( macro , '9' , -1073741824 , '-1073741815' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '5689' ) ; test( macro , '-11' , 5678 , '5667' ) ; test( macro , '11' , -5678 , '-5667' ) ; test( macro , '-11' , -5678 , '-5689' ) ; +test( macro , '11' , 94906265 , '94906276' ) ; +test( macro , '-11' , 94906265 , '94906254' ) ; +test( macro , '11' , -94906265 , '-94906254' ) ; +test( macro , '-11' , -94906265 , '-94906276' ) ; +test( macro , '11' , 94906266 , '94906277' ) ; +test( macro , '-11' , 94906266 , '94906255' ) ; +test( macro , '11' , -94906266 , '-94906255' ) ; +test( macro , '-11' , -94906266 , '-94906277' ) ; test( macro , '11' , 1073741824 , '1073741835' ) ; test( macro , '-11' , 1073741824 , '1073741813' ) ; test( macro , '11' , -1073741824 , '-1073741813' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '5695' ) ; test( macro , '-17' , 5678 , '5661' ) ; test( macro , '17' , -5678 , '-5661' ) ; test( macro , '-17' , -5678 , '-5695' ) ; +test( macro , '17' , 94906265 , '94906282' ) ; +test( macro , '-17' , 94906265 , '94906248' ) ; +test( macro , '17' , -94906265 , '-94906248' ) ; +test( macro , '-17' , -94906265 , '-94906282' ) ; +test( macro , '17' , 94906266 , '94906283' ) ; +test( macro , '-17' , 94906266 , '94906249' ) ; +test( macro , '17' , -94906266 , '-94906249' ) ; +test( macro , '-17' , -94906266 , '-94906283' ) ; test( macro , '17' , 1073741824 , '1073741841' ) ; test( macro , '-17' , 1073741824 , '1073741807' ) ; test( macro , '17' , -1073741824 , '-1073741807' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '5700' ) ; test( macro , '-22' , 5678 , '5656' ) ; test( macro , '22' , -5678 , '-5656' ) ; test( macro , '-22' , -5678 , '-5700' ) ; +test( macro , '22' , 94906265 , '94906287' ) ; +test( macro , '-22' , 94906265 , '94906243' ) ; +test( macro , '22' , -94906265 , '-94906243' ) ; +test( macro , '-22' , -94906265 , '-94906287' ) ; +test( macro , '22' , 94906266 , '94906288' ) ; +test( macro , '-22' , 94906266 , '94906244' ) ; +test( macro , '22' , -94906266 , '-94906244' ) ; +test( macro , '-22' , -94906266 , '-94906288' ) ; test( macro , '22' , 1073741824 , '1073741846' ) ; test( macro , '-22' , 1073741824 , '1073741802' ) ; test( macro , '22' , -1073741824 , '-1073741802' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '5702' ) ; test( macro , '-24' , 5678 , '5654' ) ; test( macro , '24' , -5678 , '-5654' ) ; test( macro , '-24' , -5678 , '-5702' ) ; +test( macro , '24' , 94906265 , '94906289' ) ; +test( macro , '-24' , 94906265 , '94906241' ) ; +test( macro , '24' , -94906265 , '-94906241' ) ; +test( macro , '-24' , -94906265 , '-94906289' ) ; +test( macro , '24' , 94906266 , '94906290' ) ; +test( macro , '-24' , 94906266 , '94906242' ) ; +test( macro , '24' , -94906266 , '-94906242' ) ; +test( macro , '-24' , -94906266 , '-94906290' ) ; test( macro , '24' , 1073741824 , '1073741848' ) ; test( macro , '-24' , 1073741824 , '1073741800' ) ; test( macro , '24' , -1073741824 , '-1073741800' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '5705' ) ; test( macro , '-27' , 5678 , '5651' ) ; test( macro , '27' , -5678 , '-5651' ) ; test( macro , '-27' , -5678 , '-5705' ) ; +test( macro , '27' , 94906265 , '94906292' ) ; +test( macro , '-27' , 94906265 , '94906238' ) ; +test( macro , '27' , -94906265 , '-94906238' ) ; +test( macro , '-27' , -94906265 , '-94906292' ) ; +test( macro , '27' , 94906266 , '94906293' ) ; +test( macro , '-27' , 94906266 , '94906239' ) ; +test( macro , '27' , -94906266 , '-94906239' ) ; +test( macro , '-27' , -94906266 , '-94906293' ) ; test( macro , '27' , 1073741824 , '1073741851' ) ; test( macro , '-27' , 1073741824 , '1073741797' ) ; test( macro , '27' , -1073741824 , '-1073741797' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '5707' ) ; test( macro , '-29' , 5678 , '5649' ) ; test( macro , '29' , -5678 , '-5649' ) ; test( macro , '-29' , -5678 , '-5707' ) ; +test( macro , '29' , 94906265 , '94906294' ) ; +test( macro , '-29' , 94906265 , '94906236' ) ; +test( macro , '29' , -94906265 , '-94906236' ) ; +test( macro , '-29' , -94906265 , '-94906294' ) ; +test( macro , '29' , 94906266 , '94906295' ) ; +test( macro , '-29' , 94906266 , '94906237' ) ; +test( macro , '29' , -94906266 , '-94906237' ) ; +test( macro , '-29' , -94906266 , '-94906295' ) ; test( macro , '29' , 1073741824 , '1073741853' ) ; test( macro , '-29' , 1073741824 , '1073741795' ) ; test( macro , '29' , -1073741824 , '-1073741795' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '6912' ) ; test( macro , '-1234' , 5678 , '4444' ) ; test( macro , '1234' , -5678 , '-4444' ) ; test( macro , '-1234' , -5678 , '-6912' ) ; +test( macro , '1234' , 94906265 , '94907499' ) ; +test( macro , '-1234' , 94906265 , '94905031' ) ; +test( macro , '1234' , -94906265 , '-94905031' ) ; +test( macro , '-1234' , -94906265 , '-94907499' ) ; +test( macro , '1234' , 94906266 , '94907500' ) ; +test( macro , '-1234' , 94906266 , '94905032' ) ; +test( macro , '1234' , -94906266 , '-94905032' ) ; +test( macro , '-1234' , -94906266 , '-94907500' ) ; test( macro , '1234' , 1073741824 , '1073743058' ) ; test( macro , '-1234' , 1073741824 , '1073740590' ) ; test( macro , '1234' , -1073741824 , '-1073740590' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '11356' ) ; test( macro , '-5678' , 5678 , '0' ) ; test( macro , '5678' , -5678 , '0' ) ; test( macro , '-5678' , -5678 , '-11356' ) ; +test( macro , '5678' , 94906265 , '94911943' ) ; +test( macro , '-5678' , 94906265 , '94900587' ) ; +test( macro , '5678' , -94906265 , '-94900587' ) ; +test( macro , '-5678' , -94906265 , '-94911943' ) ; +test( macro , '5678' , 94906266 , '94911944' ) ; +test( macro , '-5678' , 94906266 , '94900588' ) ; +test( macro , '5678' , -94906266 , '-94900588' ) ; +test( macro , '-5678' , -94906266 , '-94911944' ) ; test( macro , '5678' , 1073741824 , '1073747502' ) ; test( macro , '-5678' , 1073741824 , '1073736146' ) ; test( macro , '5678' , -1073741824 , '-1073736146' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '51676101941409' ) ; test( macro , '-5678' , 51676101935731 , '51676101930053' ) ; test( macro , '5678' , -51676101935731 , '-51676101930053' ) ; test( macro , '-5678' , -51676101935731 , '-51676101941409' ) ; +test( macro , '94906265' , 1 , '94906266' ) ; +test( macro , '-94906265' , 1 , '-94906264' ) ; +test( macro , '94906265' , -1 , '94906264' ) ; +test( macro , '-94906265' , -1 , '-94906266' ) ; +test( macro , '94906265' , 3 , '94906268' ) ; +test( macro , '-94906265' , 3 , '-94906262' ) ; +test( macro , '94906265' , -3 , '94906262' ) ; +test( macro , '-94906265' , -3 , '-94906268' ) ; +test( macro , '94906265' , 7 , '94906272' ) ; +test( macro , '-94906265' , 7 , '-94906258' ) ; +test( macro , '94906265' , -7 , '94906258' ) ; +test( macro , '-94906265' , -7 , '-94906272' ) ; +test( macro , '94906265' , 9 , '94906274' ) ; +test( macro , '-94906265' , 9 , '-94906256' ) ; +test( macro , '94906265' , -9 , '94906256' ) ; +test( macro , '-94906265' , -9 , '-94906274' ) ; +test( macro , '94906265' , 11 , '94906276' ) ; +test( macro , '-94906265' , 11 , '-94906254' ) ; +test( macro , '94906265' , -11 , '94906254' ) ; +test( macro , '-94906265' , -11 , '-94906276' ) ; +test( macro , '94906265' , 17 , '94906282' ) ; +test( macro , '-94906265' , 17 , '-94906248' ) ; +test( macro , '94906265' , -17 , '94906248' ) ; +test( macro , '-94906265' , -17 , '-94906282' ) ; +test( macro , '94906265' , 22 , '94906287' ) ; +test( macro , '-94906265' , 22 , '-94906243' ) ; +test( macro , '94906265' , -22 , '94906243' ) ; +test( macro , '-94906265' , -22 , '-94906287' ) ; +test( macro , '94906265' , 24 , '94906289' ) ; +test( macro , '-94906265' , 24 , '-94906241' ) ; +test( macro , '94906265' , -24 , '94906241' ) ; +test( macro , '-94906265' , -24 , '-94906289' ) ; +test( macro , '94906265' , 27 , '94906292' ) ; +test( macro , '-94906265' , 27 , '-94906238' ) ; +test( macro , '94906265' , -27 , '94906238' ) ; +test( macro , '-94906265' , -27 , '-94906292' ) ; +test( macro , '94906265' , 29 , '94906294' ) ; +test( macro , '-94906265' , 29 , '-94906236' ) ; +test( macro , '94906265' , -29 , '94906236' ) ; +test( macro , '-94906265' , -29 , '-94906294' ) ; +test( macro , '94906265' , 1234 , '94907499' ) ; +test( macro , '-94906265' , 1234 , '-94905031' ) ; +test( macro , '94906265' , -1234 , '94905031' ) ; +test( macro , '-94906265' , -1234 , '-94907499' ) ; +test( macro , '94906265' , 5678 , '94911943' ) ; +test( macro , '-94906265' , 5678 , '-94900587' ) ; +test( macro , '94906265' , -5678 , '94900587' ) ; +test( macro , '-94906265' , -5678 , '-94911943' ) ; +test( macro , '94906265' , 94906265 , '189812530' ) ; +test( macro , '-94906265' , 94906265 , '0' ) ; +test( macro , '94906265' , -94906265 , '0' ) ; +test( macro , '-94906265' , -94906265 , '-189812530' ) ; +test( macro , '94906265' , 94906266 , '189812531' ) ; +test( macro , '-94906265' , 94906266 , '1' ) ; +test( macro , '94906265' , -94906266 , '-1' ) ; +test( macro , '-94906265' , -94906266 , '-189812531' ) ; +test( macro , '94906265' , 1073741824 , '1168648089' ) ; +test( macro , '-94906265' , 1073741824 , '978835559' ) ; +test( macro , '94906265' , -1073741824 , '-978835559' ) ; +test( macro , '-94906265' , -1073741824 , '-1168648089' ) ; +test( macro , '94906265' , 51676101935731 , '51676196841996' ) ; +test( macro , '-94906265' , 51676101935731 , '51676007029466' ) ; +test( macro , '94906265' , -51676101935731 , '-51676007029466' ) ; +test( macro , '-94906265' , -51676101935731 , '-51676196841996' ) ; +test( macro , '94906266' , 1 , '94906267' ) ; +test( macro , '-94906266' , 1 , '-94906265' ) ; +test( macro , '94906266' , -1 , '94906265' ) ; +test( macro , '-94906266' , -1 , '-94906267' ) ; +test( macro , '94906266' , 3 , '94906269' ) ; +test( macro , '-94906266' , 3 , '-94906263' ) ; +test( macro , '94906266' , -3 , '94906263' ) ; +test( macro , '-94906266' , -3 , '-94906269' ) ; +test( macro , '94906266' , 7 , '94906273' ) ; +test( macro , '-94906266' , 7 , '-94906259' ) ; +test( macro , '94906266' , -7 , '94906259' ) ; +test( macro , '-94906266' , -7 , '-94906273' ) ; +test( macro , '94906266' , 9 , '94906275' ) ; +test( macro , '-94906266' , 9 , '-94906257' ) ; +test( macro , '94906266' , -9 , '94906257' ) ; +test( macro , '-94906266' , -9 , '-94906275' ) ; +test( macro , '94906266' , 11 , '94906277' ) ; +test( macro , '-94906266' , 11 , '-94906255' ) ; +test( macro , '94906266' , -11 , '94906255' ) ; +test( macro , '-94906266' , -11 , '-94906277' ) ; +test( macro , '94906266' , 17 , '94906283' ) ; +test( macro , '-94906266' , 17 , '-94906249' ) ; +test( macro , '94906266' , -17 , '94906249' ) ; +test( macro , '-94906266' , -17 , '-94906283' ) ; +test( macro , '94906266' , 22 , '94906288' ) ; +test( macro , '-94906266' , 22 , '-94906244' ) ; +test( macro , '94906266' , -22 , '94906244' ) ; +test( macro , '-94906266' , -22 , '-94906288' ) ; +test( macro , '94906266' , 24 , '94906290' ) ; +test( macro , '-94906266' , 24 , '-94906242' ) ; +test( macro , '94906266' , -24 , '94906242' ) ; +test( macro , '-94906266' , -24 , '-94906290' ) ; +test( macro , '94906266' , 27 , '94906293' ) ; +test( macro , '-94906266' , 27 , '-94906239' ) ; +test( macro , '94906266' , -27 , '94906239' ) ; +test( macro , '-94906266' , -27 , '-94906293' ) ; +test( macro , '94906266' , 29 , '94906295' ) ; +test( macro , '-94906266' , 29 , '-94906237' ) ; +test( macro , '94906266' , -29 , '94906237' ) ; +test( macro , '-94906266' , -29 , '-94906295' ) ; +test( macro , '94906266' , 1234 , '94907500' ) ; +test( macro , '-94906266' , 1234 , '-94905032' ) ; +test( macro , '94906266' , -1234 , '94905032' ) ; +test( macro , '-94906266' , -1234 , '-94907500' ) ; +test( macro , '94906266' , 5678 , '94911944' ) ; +test( macro , '-94906266' , 5678 , '-94900588' ) ; +test( macro , '94906266' , -5678 , '94900588' ) ; +test( macro , '-94906266' , -5678 , '-94911944' ) ; +test( macro , '94906266' , 94906265 , '189812531' ) ; +test( macro , '-94906266' , 94906265 , '-1' ) ; +test( macro , '94906266' , -94906265 , '1' ) ; +test( macro , '-94906266' , -94906265 , '-189812531' ) ; +test( macro , '94906266' , 94906266 , '189812532' ) ; +test( macro , '-94906266' , 94906266 , '0' ) ; +test( macro , '94906266' , -94906266 , '0' ) ; +test( macro , '-94906266' , -94906266 , '-189812532' ) ; +test( macro , '94906266' , 1073741824 , '1168648090' ) ; +test( macro , '-94906266' , 1073741824 , '978835558' ) ; +test( macro , '94906266' , -1073741824 , '-978835558' ) ; +test( macro , '-94906266' , -1073741824 , '-1168648090' ) ; +test( macro , '94906266' , 51676101935731 , '51676196841997' ) ; +test( macro , '-94906266' , 51676101935731 , '51676007029465' ) ; +test( macro , '94906266' , -51676101935731 , '-51676007029465' ) ; +test( macro , '-94906266' , -51676101935731 , '-51676196841997' ) ; test( macro , '1073741824' , 1 , '1073741825' ) ; test( macro , '-1073741824' , 1 , '-1073741823' ) ; test( macro , '1073741824' , -1 , '1073741823' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '1073747502' ) ; test( macro , '-1073741824' , 5678 , '-1073736146' ) ; test( macro , '1073741824' , -5678 , '1073736146' ) ; test( macro , '-1073741824' , -5678 , '-1073747502' ) ; +test( macro , '1073741824' , 94906265 , '1168648089' ) ; +test( macro , '-1073741824' , 94906265 , '-978835559' ) ; +test( macro , '1073741824' , -94906265 , '978835559' ) ; +test( macro , '-1073741824' , -94906265 , '-1168648089' ) ; +test( macro , '1073741824' , 94906266 , '1168648090' ) ; +test( macro , '-1073741824' , 94906266 , '-978835558' ) ; +test( macro , '1073741824' , -94906266 , '978835558' ) ; +test( macro , '-1073741824' , -94906266 , '-1168648090' ) ; test( macro , '1073741824' , 1073741824 , '2147483648' ) ; test( macro , '-1073741824' , 1073741824 , '0' ) ; test( macro , '1073741824' , -1073741824 , '0' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '51676101941409' ) ; test( macro , '-51676101935731' , 5678 , '-51676101930053' ) ; test( macro , '51676101935731' , -5678 , '51676101930053' ) ; test( macro , '-51676101935731' , -5678 , '-51676101941409' ) ; +test( macro , '51676101935731' , 94906265 , '51676196841996' ) ; +test( macro , '-51676101935731' , 94906265 , '-51676007029466' ) ; +test( macro , '51676101935731' , -94906265 , '51676007029466' ) ; +test( macro , '-51676101935731' , -94906265 , '-51676196841996' ) ; +test( macro , '51676101935731' , 94906266 , '51676196841997' ) ; +test( macro , '-51676101935731' , 94906266 , '-51676007029465' ) ; +test( macro , '51676101935731' , -94906266 , '51676007029465' ) ; +test( macro , '-51676101935731' , -94906266 , '-51676196841997' ) ; test( macro , '51676101935731' , 1073741824 , '51677175677555' ) ; test( macro , '-51676101935731' , 1073741824 , '-51675028193907' ) ; test( macro , '51676101935731' , -1073741824 , '51675028193907' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '717897987691852588775927' ) ; test( macro , '-717897987691852588770249' , 5678 , '-717897987691852588764571' ) ; test( macro , '717897987691852588770249' , -5678 , '717897987691852588764571' ) ; test( macro , '-717897987691852588770249' , -5678 , '-717897987691852588775927' ) ; +test( macro , '717897987691852588770249' , 94906265 , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , -94906265 , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , 94906266 , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-717897987691852493863983' ) ; +test( macro , '717897987691852588770249' , -94906266 , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '-717897987691852683676515' ) ; test( macro , '717897987691852588770249' , 1073741824 , '717897987691853662512073' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-717897987691851515028425' ) ; test( macro , '717897987691852588770249' , -1073741824 , '717897987691851515028425' ) ; diff --git a/test/src/integer/arithmetic/div.js b/test/src/integer/arithmetic/div.js index fbf0e01..e67e605 100644 --- a/test/src/integer/arithmetic/div.js +++ b/test/src/integer/arithmetic/div.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '0' ) ; test( macro , '-1' , '5678' , '-1' ) ; test( macro , '1' , '-5678' , '-1' ) ; test( macro , '-1' , '-5678' , '0' ) ; +test( macro , '1' , '94906265' , '0' ) ; +test( macro , '-1' , '94906265' , '-1' ) ; +test( macro , '1' , '-94906265' , '-1' ) ; +test( macro , '-1' , '-94906265' , '0' ) ; +test( macro , '1' , '94906266' , '0' ) ; +test( macro , '-1' , '94906266' , '-1' ) ; +test( macro , '1' , '-94906266' , '-1' ) ; +test( macro , '-1' , '-94906266' , '0' ) ; test( macro , '1' , '1073741824' , '0' ) ; test( macro , '-1' , '1073741824' , '-1' ) ; test( macro , '1' , '-1073741824' , '-1' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '0' ) ; test( macro , '-3' , '5678' , '-1' ) ; test( macro , '3' , '-5678' , '-1' ) ; test( macro , '-3' , '-5678' , '0' ) ; +test( macro , '3' , '94906265' , '0' ) ; +test( macro , '-3' , '94906265' , '-1' ) ; +test( macro , '3' , '-94906265' , '-1' ) ; +test( macro , '-3' , '-94906265' , '0' ) ; +test( macro , '3' , '94906266' , '0' ) ; +test( macro , '-3' , '94906266' , '-1' ) ; +test( macro , '3' , '-94906266' , '-1' ) ; +test( macro , '-3' , '-94906266' , '0' ) ; test( macro , '3' , '1073741824' , '0' ) ; test( macro , '-3' , '1073741824' , '-1' ) ; test( macro , '3' , '-1073741824' , '-1' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '0' ) ; test( macro , '-7' , '5678' , '-1' ) ; test( macro , '7' , '-5678' , '-1' ) ; test( macro , '-7' , '-5678' , '0' ) ; +test( macro , '7' , '94906265' , '0' ) ; +test( macro , '-7' , '94906265' , '-1' ) ; +test( macro , '7' , '-94906265' , '-1' ) ; +test( macro , '-7' , '-94906265' , '0' ) ; +test( macro , '7' , '94906266' , '0' ) ; +test( macro , '-7' , '94906266' , '-1' ) ; +test( macro , '7' , '-94906266' , '-1' ) ; +test( macro , '-7' , '-94906266' , '0' ) ; test( macro , '7' , '1073741824' , '0' ) ; test( macro , '-7' , '1073741824' , '-1' ) ; test( macro , '7' , '-1073741824' , '-1' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '0' ) ; test( macro , '-9' , '5678' , '-1' ) ; test( macro , '9' , '-5678' , '-1' ) ; test( macro , '-9' , '-5678' , '0' ) ; +test( macro , '9' , '94906265' , '0' ) ; +test( macro , '-9' , '94906265' , '-1' ) ; +test( macro , '9' , '-94906265' , '-1' ) ; +test( macro , '-9' , '-94906265' , '0' ) ; +test( macro , '9' , '94906266' , '0' ) ; +test( macro , '-9' , '94906266' , '-1' ) ; +test( macro , '9' , '-94906266' , '-1' ) ; +test( macro , '-9' , '-94906266' , '0' ) ; test( macro , '9' , '1073741824' , '0' ) ; test( macro , '-9' , '1073741824' , '-1' ) ; test( macro , '9' , '-1073741824' , '-1' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '0' ) ; test( macro , '-11' , '5678' , '-1' ) ; test( macro , '11' , '-5678' , '-1' ) ; test( macro , '-11' , '-5678' , '0' ) ; +test( macro , '11' , '94906265' , '0' ) ; +test( macro , '-11' , '94906265' , '-1' ) ; +test( macro , '11' , '-94906265' , '-1' ) ; +test( macro , '-11' , '-94906265' , '0' ) ; +test( macro , '11' , '94906266' , '0' ) ; +test( macro , '-11' , '94906266' , '-1' ) ; +test( macro , '11' , '-94906266' , '-1' ) ; +test( macro , '-11' , '-94906266' , '0' ) ; test( macro , '11' , '1073741824' , '0' ) ; test( macro , '-11' , '1073741824' , '-1' ) ; test( macro , '11' , '-1073741824' , '-1' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '0' ) ; test( macro , '-17' , '5678' , '-1' ) ; test( macro , '17' , '-5678' , '-1' ) ; test( macro , '-17' , '-5678' , '0' ) ; +test( macro , '17' , '94906265' , '0' ) ; +test( macro , '-17' , '94906265' , '-1' ) ; +test( macro , '17' , '-94906265' , '-1' ) ; +test( macro , '-17' , '-94906265' , '0' ) ; +test( macro , '17' , '94906266' , '0' ) ; +test( macro , '-17' , '94906266' , '-1' ) ; +test( macro , '17' , '-94906266' , '-1' ) ; +test( macro , '-17' , '-94906266' , '0' ) ; test( macro , '17' , '1073741824' , '0' ) ; test( macro , '-17' , '1073741824' , '-1' ) ; test( macro , '17' , '-1073741824' , '-1' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '0' ) ; test( macro , '-22' , '5678' , '-1' ) ; test( macro , '22' , '-5678' , '-1' ) ; test( macro , '-22' , '-5678' , '0' ) ; +test( macro , '22' , '94906265' , '0' ) ; +test( macro , '-22' , '94906265' , '-1' ) ; +test( macro , '22' , '-94906265' , '-1' ) ; +test( macro , '-22' , '-94906265' , '0' ) ; +test( macro , '22' , '94906266' , '0' ) ; +test( macro , '-22' , '94906266' , '-1' ) ; +test( macro , '22' , '-94906266' , '-1' ) ; +test( macro , '-22' , '-94906266' , '0' ) ; test( macro , '22' , '1073741824' , '0' ) ; test( macro , '-22' , '1073741824' , '-1' ) ; test( macro , '22' , '-1073741824' , '-1' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '0' ) ; test( macro , '-24' , '5678' , '-1' ) ; test( macro , '24' , '-5678' , '-1' ) ; test( macro , '-24' , '-5678' , '0' ) ; +test( macro , '24' , '94906265' , '0' ) ; +test( macro , '-24' , '94906265' , '-1' ) ; +test( macro , '24' , '-94906265' , '-1' ) ; +test( macro , '-24' , '-94906265' , '0' ) ; +test( macro , '24' , '94906266' , '0' ) ; +test( macro , '-24' , '94906266' , '-1' ) ; +test( macro , '24' , '-94906266' , '-1' ) ; +test( macro , '-24' , '-94906266' , '0' ) ; test( macro , '24' , '1073741824' , '0' ) ; test( macro , '-24' , '1073741824' , '-1' ) ; test( macro , '24' , '-1073741824' , '-1' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '0' ) ; test( macro , '-27' , '5678' , '-1' ) ; test( macro , '27' , '-5678' , '-1' ) ; test( macro , '-27' , '-5678' , '0' ) ; +test( macro , '27' , '94906265' , '0' ) ; +test( macro , '-27' , '94906265' , '-1' ) ; +test( macro , '27' , '-94906265' , '-1' ) ; +test( macro , '-27' , '-94906265' , '0' ) ; +test( macro , '27' , '94906266' , '0' ) ; +test( macro , '-27' , '94906266' , '-1' ) ; +test( macro , '27' , '-94906266' , '-1' ) ; +test( macro , '-27' , '-94906266' , '0' ) ; test( macro , '27' , '1073741824' , '0' ) ; test( macro , '-27' , '1073741824' , '-1' ) ; test( macro , '27' , '-1073741824' , '-1' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '0' ) ; test( macro , '-29' , '5678' , '-1' ) ; test( macro , '29' , '-5678' , '-1' ) ; test( macro , '-29' , '-5678' , '0' ) ; +test( macro , '29' , '94906265' , '0' ) ; +test( macro , '-29' , '94906265' , '-1' ) ; +test( macro , '29' , '-94906265' , '-1' ) ; +test( macro , '-29' , '-94906265' , '0' ) ; +test( macro , '29' , '94906266' , '0' ) ; +test( macro , '-29' , '94906266' , '-1' ) ; +test( macro , '29' , '-94906266' , '-1' ) ; +test( macro , '-29' , '-94906266' , '0' ) ; test( macro , '29' , '1073741824' , '0' ) ; test( macro , '-29' , '1073741824' , '-1' ) ; test( macro , '29' , '-1073741824' , '-1' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '0' ) ; test( macro , '-1234' , '5678' , '-1' ) ; test( macro , '1234' , '-5678' , '-1' ) ; test( macro , '-1234' , '-5678' , '0' ) ; +test( macro , '1234' , '94906265' , '0' ) ; +test( macro , '-1234' , '94906265' , '-1' ) ; +test( macro , '1234' , '-94906265' , '-1' ) ; +test( macro , '-1234' , '-94906265' , '0' ) ; +test( macro , '1234' , '94906266' , '0' ) ; +test( macro , '-1234' , '94906266' , '-1' ) ; +test( macro , '1234' , '-94906266' , '-1' ) ; +test( macro , '-1234' , '-94906266' , '0' ) ; test( macro , '1234' , '1073741824' , '0' ) ; test( macro , '-1234' , '1073741824' , '-1' ) ; test( macro , '1234' , '-1073741824' , '-1' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '1' ) ; test( macro , '-5678' , '5678' , '-1' ) ; test( macro , '5678' , '-5678' , '-1' ) ; test( macro , '-5678' , '-5678' , '1' ) ; +test( macro , '5678' , '94906265' , '0' ) ; +test( macro , '-5678' , '94906265' , '-1' ) ; +test( macro , '5678' , '-94906265' , '-1' ) ; +test( macro , '-5678' , '-94906265' , '0' ) ; +test( macro , '5678' , '94906266' , '0' ) ; +test( macro , '-5678' , '94906266' , '-1' ) ; +test( macro , '5678' , '-94906266' , '-1' ) ; +test( macro , '-5678' , '-94906266' , '0' ) ; test( macro , '5678' , '1073741824' , '0' ) ; test( macro , '-5678' , '1073741824' , '-1' ) ; test( macro , '5678' , '-1073741824' , '-1' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '0' ) ; test( macro , '-5678' , '717897987691852588770249' , '-1' ) ; test( macro , '5678' , '-717897987691852588770249' , '-1' ) ; test( macro , '-5678' , '-717897987691852588770249' , '0' ) ; +test( macro , '94906265' , '1' , '94906265' ) ; +test( macro , '-94906265' , '1' , '-94906265' ) ; +test( macro , '94906265' , '-1' , '-94906265' ) ; +test( macro , '-94906265' , '-1' , '94906265' ) ; +test( macro , '94906265' , '3' , '31635421' ) ; +test( macro , '-94906265' , '3' , '-31635422' ) ; +test( macro , '94906265' , '-3' , '-31635422' ) ; +test( macro , '-94906265' , '-3' , '31635421' ) ; +test( macro , '94906265' , '7' , '13558037' ) ; +test( macro , '-94906265' , '7' , '-13558038' ) ; +test( macro , '94906265' , '-7' , '-13558038' ) ; +test( macro , '-94906265' , '-7' , '13558037' ) ; +test( macro , '94906265' , '9' , '10545140' ) ; +test( macro , '-94906265' , '9' , '-10545141' ) ; +test( macro , '94906265' , '-9' , '-10545141' ) ; +test( macro , '-94906265' , '-9' , '10545140' ) ; +test( macro , '94906265' , '11' , '8627842' ) ; +test( macro , '-94906265' , '11' , '-8627843' ) ; +test( macro , '94906265' , '-11' , '-8627843' ) ; +test( macro , '-94906265' , '-11' , '8627842' ) ; +test( macro , '94906265' , '17' , '5582721' ) ; +test( macro , '-94906265' , '17' , '-5582722' ) ; +test( macro , '94906265' , '-17' , '-5582722' ) ; +test( macro , '-94906265' , '-17' , '5582721' ) ; +test( macro , '94906265' , '22' , '4313921' ) ; +test( macro , '-94906265' , '22' , '-4313922' ) ; +test( macro , '94906265' , '-22' , '-4313922' ) ; +test( macro , '-94906265' , '-22' , '4313921' ) ; +test( macro , '94906265' , '24' , '3954427' ) ; +test( macro , '-94906265' , '24' , '-3954428' ) ; +test( macro , '94906265' , '-24' , '-3954428' ) ; +test( macro , '-94906265' , '-24' , '3954427' ) ; +test( macro , '94906265' , '27' , '3515046' ) ; +test( macro , '-94906265' , '27' , '-3515047' ) ; +test( macro , '94906265' , '-27' , '-3515047' ) ; +test( macro , '-94906265' , '-27' , '3515046' ) ; +test( macro , '94906265' , '29' , '3272629' ) ; +test( macro , '-94906265' , '29' , '-3272630' ) ; +test( macro , '94906265' , '-29' , '-3272630' ) ; +test( macro , '-94906265' , '-29' , '3272629' ) ; +test( macro , '94906265' , '1234' , '76909' ) ; +test( macro , '-94906265' , '1234' , '-76910' ) ; +test( macro , '94906265' , '-1234' , '-76910' ) ; +test( macro , '-94906265' , '-1234' , '76909' ) ; +test( macro , '94906265' , '5678' , '16714' ) ; +test( macro , '-94906265' , '5678' , '-16715' ) ; +test( macro , '94906265' , '-5678' , '-16715' ) ; +test( macro , '-94906265' , '-5678' , '16714' ) ; +test( macro , '94906265' , '94906265' , '1' ) ; +test( macro , '-94906265' , '94906265' , '-1' ) ; +test( macro , '94906265' , '-94906265' , '-1' ) ; +test( macro , '-94906265' , '-94906265' , '1' ) ; +test( macro , '94906265' , '94906266' , '0' ) ; +test( macro , '-94906265' , '94906266' , '-1' ) ; +test( macro , '94906265' , '-94906266' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '0' ) ; +test( macro , '94906265' , '1073741824' , '0' ) ; +test( macro , '-94906265' , '1073741824' , '-1' ) ; +test( macro , '94906265' , '-1073741824' , '-1' ) ; +test( macro , '-94906265' , '-1073741824' , '0' ) ; +test( macro , '94906265' , '51676101935731' , '0' ) ; +test( macro , '-94906265' , '51676101935731' , '-1' ) ; +test( macro , '94906265' , '-51676101935731' , '-1' ) ; +test( macro , '-94906265' , '-51676101935731' , '0' ) ; +test( macro , '94906265' , '717897987691852588770249' , '0' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-1' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-1' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '0' ) ; +test( macro , '94906266' , '1' , '94906266' ) ; +test( macro , '-94906266' , '1' , '-94906266' ) ; +test( macro , '94906266' , '-1' , '-94906266' ) ; +test( macro , '-94906266' , '-1' , '94906266' ) ; +test( macro , '94906266' , '3' , '31635422' ) ; +test( macro , '-94906266' , '3' , '-31635422' ) ; +test( macro , '94906266' , '-3' , '-31635422' ) ; +test( macro , '-94906266' , '-3' , '31635422' ) ; +test( macro , '94906266' , '7' , '13558038' ) ; +test( macro , '-94906266' , '7' , '-13558038' ) ; +test( macro , '94906266' , '-7' , '-13558038' ) ; +test( macro , '-94906266' , '-7' , '13558038' ) ; +test( macro , '94906266' , '9' , '10545140' ) ; +test( macro , '-94906266' , '9' , '-10545141' ) ; +test( macro , '94906266' , '-9' , '-10545141' ) ; +test( macro , '-94906266' , '-9' , '10545140' ) ; +test( macro , '94906266' , '11' , '8627842' ) ; +test( macro , '-94906266' , '11' , '-8627843' ) ; +test( macro , '94906266' , '-11' , '-8627843' ) ; +test( macro , '-94906266' , '-11' , '8627842' ) ; +test( macro , '94906266' , '17' , '5582721' ) ; +test( macro , '-94906266' , '17' , '-5582722' ) ; +test( macro , '94906266' , '-17' , '-5582722' ) ; +test( macro , '-94906266' , '-17' , '5582721' ) ; +test( macro , '94906266' , '22' , '4313921' ) ; +test( macro , '-94906266' , '22' , '-4313922' ) ; +test( macro , '94906266' , '-22' , '-4313922' ) ; +test( macro , '-94906266' , '-22' , '4313921' ) ; +test( macro , '94906266' , '24' , '3954427' ) ; +test( macro , '-94906266' , '24' , '-3954428' ) ; +test( macro , '94906266' , '-24' , '-3954428' ) ; +test( macro , '-94906266' , '-24' , '3954427' ) ; +test( macro , '94906266' , '27' , '3515046' ) ; +test( macro , '-94906266' , '27' , '-3515047' ) ; +test( macro , '94906266' , '-27' , '-3515047' ) ; +test( macro , '-94906266' , '-27' , '3515046' ) ; +test( macro , '94906266' , '29' , '3272629' ) ; +test( macro , '-94906266' , '29' , '-3272630' ) ; +test( macro , '94906266' , '-29' , '-3272630' ) ; +test( macro , '-94906266' , '-29' , '3272629' ) ; +test( macro , '94906266' , '1234' , '76909' ) ; +test( macro , '-94906266' , '1234' , '-76910' ) ; +test( macro , '94906266' , '-1234' , '-76910' ) ; +test( macro , '-94906266' , '-1234' , '76909' ) ; +test( macro , '94906266' , '5678' , '16714' ) ; +test( macro , '-94906266' , '5678' , '-16715' ) ; +test( macro , '94906266' , '-5678' , '-16715' ) ; +test( macro , '-94906266' , '-5678' , '16714' ) ; +test( macro , '94906266' , '94906265' , '1' ) ; +test( macro , '-94906266' , '94906265' , '-2' ) ; +test( macro , '94906266' , '-94906265' , '-2' ) ; +test( macro , '-94906266' , '-94906265' , '1' ) ; +test( macro , '94906266' , '94906266' , '1' ) ; +test( macro , '-94906266' , '94906266' , '-1' ) ; +test( macro , '94906266' , '-94906266' , '-1' ) ; +test( macro , '-94906266' , '-94906266' , '1' ) ; +test( macro , '94906266' , '1073741824' , '0' ) ; +test( macro , '-94906266' , '1073741824' , '-1' ) ; +test( macro , '94906266' , '-1073741824' , '-1' ) ; +test( macro , '-94906266' , '-1073741824' , '0' ) ; +test( macro , '94906266' , '51676101935731' , '0' ) ; +test( macro , '-94906266' , '51676101935731' , '-1' ) ; +test( macro , '94906266' , '-51676101935731' , '-1' ) ; +test( macro , '-94906266' , '-51676101935731' , '0' ) ; +test( macro , '94906266' , '717897987691852588770249' , '0' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-1' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-1' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '0' ) ; test( macro , '1073741824' , '1' , '1073741824' ) ; test( macro , '-1073741824' , '1' , '-1073741824' ) ; test( macro , '1073741824' , '-1' , '-1073741824' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '189105' ) ; test( macro , '-1073741824' , '5678' , '-189106' ) ; test( macro , '1073741824' , '-5678' , '-189106' ) ; test( macro , '-1073741824' , '-5678' , '189105' ) ; +test( macro , '1073741824' , '94906265' , '11' ) ; +test( macro , '-1073741824' , '94906265' , '-12' ) ; +test( macro , '1073741824' , '-94906265' , '-12' ) ; +test( macro , '-1073741824' , '-94906265' , '11' ) ; +test( macro , '1073741824' , '94906266' , '11' ) ; +test( macro , '-1073741824' , '94906266' , '-12' ) ; +test( macro , '1073741824' , '-94906266' , '-12' ) ; +test( macro , '-1073741824' , '-94906266' , '11' ) ; test( macro , '1073741824' , '1073741824' , '1' ) ; test( macro , '-1073741824' , '1073741824' , '-1' ) ; test( macro , '1073741824' , '-1073741824' , '-1' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '9101109886' ) ; test( macro , '-51676101935731' , '5678' , '-9101109887' ) ; test( macro , '51676101935731' , '-5678' , '-9101109887' ) ; test( macro , '-51676101935731' , '-5678' , '9101109886' ) ; +test( macro , '51676101935731' , '94906265' , '544496' ) ; +test( macro , '-51676101935731' , '94906265' , '-544497' ) ; +test( macro , '51676101935731' , '-94906265' , '-544497' ) ; +test( macro , '-51676101935731' , '-94906265' , '544496' ) ; +test( macro , '51676101935731' , '94906266' , '544496' ) ; +test( macro , '-51676101935731' , '94906266' , '-544497' ) ; +test( macro , '51676101935731' , '-94906266' , '-544497' ) ; +test( macro , '-51676101935731' , '-94906266' , '544496' ) ; test( macro , '51676101935731' , '1073741824' , '48127' ) ; test( macro , '-51676101935731' , '1073741824' , '-48128' ) ; test( macro , '51676101935731' , '-1073741824' , '-48128' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '126435010160593974774' ) ; test( macro , '-717897987691852588770249' , '5678' , '-126435010160593974775' ) ; test( macro , '717897987691852588770249' , '-5678' , '-126435010160593974775' ) ; test( macro , '-717897987691852588770249' , '-5678' , '126435010160593974774' ) ; +test( macro , '717897987691852588770249' , '94906265' , '7564284483135571' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-7564284483135572' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-7564284483135572' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '7564284483135571' ) ; +test( macro , '717897987691852588770249' , '94906266' , '7564284403432883' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-7564284403432884' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-7564284403432884' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '7564284403432883' ) ; test( macro , '717897987691852588770249' , '1073741824' , '668594602208447' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-668594602208448' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-668594602208448' ) ; diff --git a/test/src/integer/arithmetic/divmod.js b/test/src/integer/arithmetic/divmod.js index 2e2f0fc..1bf9ae6 100644 --- a/test/src/integer/arithmetic/divmod.js +++ b/test/src/integer/arithmetic/divmod.js @@ -61,6 +61,14 @@ test( macro , '1' , '5678' , '0' , '1' ) ; test( macro , '-1' , '5678' , '-1' , '5677' ) ; test( macro , '1' , '-5678' , '-1' , '-5677' ) ; test( macro , '-1' , '-5678' , '0' , '-1' ) ; +test( macro , '1' , '94906265' , '0' , '1' ) ; +test( macro , '-1' , '94906265' , '-1' , '94906264' ) ; +test( macro , '1' , '-94906265' , '-1' , '-94906264' ) ; +test( macro , '-1' , '-94906265' , '0' , '-1' ) ; +test( macro , '1' , '94906266' , '0' , '1' ) ; +test( macro , '-1' , '94906266' , '-1' , '94906265' ) ; +test( macro , '1' , '-94906266' , '-1' , '-94906265' ) ; +test( macro , '-1' , '-94906266' , '0' , '-1' ) ; test( macro , '1' , '1073741824' , '0' , '1' ) ; test( macro , '-1' , '1073741824' , '-1' , '1073741823' ) ; test( macro , '1' , '-1073741824' , '-1' , '-1073741823' ) ; @@ -121,6 +129,14 @@ test( macro , '3' , '5678' , '0' , '3' ) ; test( macro , '-3' , '5678' , '-1' , '5675' ) ; test( macro , '3' , '-5678' , '-1' , '-5675' ) ; test( macro , '-3' , '-5678' , '0' , '-3' ) ; +test( macro , '3' , '94906265' , '0' , '3' ) ; +test( macro , '-3' , '94906265' , '-1' , '94906262' ) ; +test( macro , '3' , '-94906265' , '-1' , '-94906262' ) ; +test( macro , '-3' , '-94906265' , '0' , '-3' ) ; +test( macro , '3' , '94906266' , '0' , '3' ) ; +test( macro , '-3' , '94906266' , '-1' , '94906263' ) ; +test( macro , '3' , '-94906266' , '-1' , '-94906263' ) ; +test( macro , '-3' , '-94906266' , '0' , '-3' ) ; test( macro , '3' , '1073741824' , '0' , '3' ) ; test( macro , '-3' , '1073741824' , '-1' , '1073741821' ) ; test( macro , '3' , '-1073741824' , '-1' , '-1073741821' ) ; @@ -181,6 +197,14 @@ test( macro , '7' , '5678' , '0' , '7' ) ; test( macro , '-7' , '5678' , '-1' , '5671' ) ; test( macro , '7' , '-5678' , '-1' , '-5671' ) ; test( macro , '-7' , '-5678' , '0' , '-7' ) ; +test( macro , '7' , '94906265' , '0' , '7' ) ; +test( macro , '-7' , '94906265' , '-1' , '94906258' ) ; +test( macro , '7' , '-94906265' , '-1' , '-94906258' ) ; +test( macro , '-7' , '-94906265' , '0' , '-7' ) ; +test( macro , '7' , '94906266' , '0' , '7' ) ; +test( macro , '-7' , '94906266' , '-1' , '94906259' ) ; +test( macro , '7' , '-94906266' , '-1' , '-94906259' ) ; +test( macro , '-7' , '-94906266' , '0' , '-7' ) ; test( macro , '7' , '1073741824' , '0' , '7' ) ; test( macro , '-7' , '1073741824' , '-1' , '1073741817' ) ; test( macro , '7' , '-1073741824' , '-1' , '-1073741817' ) ; @@ -241,6 +265,14 @@ test( macro , '9' , '5678' , '0' , '9' ) ; test( macro , '-9' , '5678' , '-1' , '5669' ) ; test( macro , '9' , '-5678' , '-1' , '-5669' ) ; test( macro , '-9' , '-5678' , '0' , '-9' ) ; +test( macro , '9' , '94906265' , '0' , '9' ) ; +test( macro , '-9' , '94906265' , '-1' , '94906256' ) ; +test( macro , '9' , '-94906265' , '-1' , '-94906256' ) ; +test( macro , '-9' , '-94906265' , '0' , '-9' ) ; +test( macro , '9' , '94906266' , '0' , '9' ) ; +test( macro , '-9' , '94906266' , '-1' , '94906257' ) ; +test( macro , '9' , '-94906266' , '-1' , '-94906257' ) ; +test( macro , '-9' , '-94906266' , '0' , '-9' ) ; test( macro , '9' , '1073741824' , '0' , '9' ) ; test( macro , '-9' , '1073741824' , '-1' , '1073741815' ) ; test( macro , '9' , '-1073741824' , '-1' , '-1073741815' ) ; @@ -301,6 +333,14 @@ test( macro , '11' , '5678' , '0' , '11' ) ; test( macro , '-11' , '5678' , '-1' , '5667' ) ; test( macro , '11' , '-5678' , '-1' , '-5667' ) ; test( macro , '-11' , '-5678' , '0' , '-11' ) ; +test( macro , '11' , '94906265' , '0' , '11' ) ; +test( macro , '-11' , '94906265' , '-1' , '94906254' ) ; +test( macro , '11' , '-94906265' , '-1' , '-94906254' ) ; +test( macro , '-11' , '-94906265' , '0' , '-11' ) ; +test( macro , '11' , '94906266' , '0' , '11' ) ; +test( macro , '-11' , '94906266' , '-1' , '94906255' ) ; +test( macro , '11' , '-94906266' , '-1' , '-94906255' ) ; +test( macro , '-11' , '-94906266' , '0' , '-11' ) ; test( macro , '11' , '1073741824' , '0' , '11' ) ; test( macro , '-11' , '1073741824' , '-1' , '1073741813' ) ; test( macro , '11' , '-1073741824' , '-1' , '-1073741813' ) ; @@ -361,6 +401,14 @@ test( macro , '17' , '5678' , '0' , '17' ) ; test( macro , '-17' , '5678' , '-1' , '5661' ) ; test( macro , '17' , '-5678' , '-1' , '-5661' ) ; test( macro , '-17' , '-5678' , '0' , '-17' ) ; +test( macro , '17' , '94906265' , '0' , '17' ) ; +test( macro , '-17' , '94906265' , '-1' , '94906248' ) ; +test( macro , '17' , '-94906265' , '-1' , '-94906248' ) ; +test( macro , '-17' , '-94906265' , '0' , '-17' ) ; +test( macro , '17' , '94906266' , '0' , '17' ) ; +test( macro , '-17' , '94906266' , '-1' , '94906249' ) ; +test( macro , '17' , '-94906266' , '-1' , '-94906249' ) ; +test( macro , '-17' , '-94906266' , '0' , '-17' ) ; test( macro , '17' , '1073741824' , '0' , '17' ) ; test( macro , '-17' , '1073741824' , '-1' , '1073741807' ) ; test( macro , '17' , '-1073741824' , '-1' , '-1073741807' ) ; @@ -421,6 +469,14 @@ test( macro , '22' , '5678' , '0' , '22' ) ; test( macro , '-22' , '5678' , '-1' , '5656' ) ; test( macro , '22' , '-5678' , '-1' , '-5656' ) ; test( macro , '-22' , '-5678' , '0' , '-22' ) ; +test( macro , '22' , '94906265' , '0' , '22' ) ; +test( macro , '-22' , '94906265' , '-1' , '94906243' ) ; +test( macro , '22' , '-94906265' , '-1' , '-94906243' ) ; +test( macro , '-22' , '-94906265' , '0' , '-22' ) ; +test( macro , '22' , '94906266' , '0' , '22' ) ; +test( macro , '-22' , '94906266' , '-1' , '94906244' ) ; +test( macro , '22' , '-94906266' , '-1' , '-94906244' ) ; +test( macro , '-22' , '-94906266' , '0' , '-22' ) ; test( macro , '22' , '1073741824' , '0' , '22' ) ; test( macro , '-22' , '1073741824' , '-1' , '1073741802' ) ; test( macro , '22' , '-1073741824' , '-1' , '-1073741802' ) ; @@ -481,6 +537,14 @@ test( macro , '24' , '5678' , '0' , '24' ) ; test( macro , '-24' , '5678' , '-1' , '5654' ) ; test( macro , '24' , '-5678' , '-1' , '-5654' ) ; test( macro , '-24' , '-5678' , '0' , '-24' ) ; +test( macro , '24' , '94906265' , '0' , '24' ) ; +test( macro , '-24' , '94906265' , '-1' , '94906241' ) ; +test( macro , '24' , '-94906265' , '-1' , '-94906241' ) ; +test( macro , '-24' , '-94906265' , '0' , '-24' ) ; +test( macro , '24' , '94906266' , '0' , '24' ) ; +test( macro , '-24' , '94906266' , '-1' , '94906242' ) ; +test( macro , '24' , '-94906266' , '-1' , '-94906242' ) ; +test( macro , '-24' , '-94906266' , '0' , '-24' ) ; test( macro , '24' , '1073741824' , '0' , '24' ) ; test( macro , '-24' , '1073741824' , '-1' , '1073741800' ) ; test( macro , '24' , '-1073741824' , '-1' , '-1073741800' ) ; @@ -541,6 +605,14 @@ test( macro , '27' , '5678' , '0' , '27' ) ; test( macro , '-27' , '5678' , '-1' , '5651' ) ; test( macro , '27' , '-5678' , '-1' , '-5651' ) ; test( macro , '-27' , '-5678' , '0' , '-27' ) ; +test( macro , '27' , '94906265' , '0' , '27' ) ; +test( macro , '-27' , '94906265' , '-1' , '94906238' ) ; +test( macro , '27' , '-94906265' , '-1' , '-94906238' ) ; +test( macro , '-27' , '-94906265' , '0' , '-27' ) ; +test( macro , '27' , '94906266' , '0' , '27' ) ; +test( macro , '-27' , '94906266' , '-1' , '94906239' ) ; +test( macro , '27' , '-94906266' , '-1' , '-94906239' ) ; +test( macro , '-27' , '-94906266' , '0' , '-27' ) ; test( macro , '27' , '1073741824' , '0' , '27' ) ; test( macro , '-27' , '1073741824' , '-1' , '1073741797' ) ; test( macro , '27' , '-1073741824' , '-1' , '-1073741797' ) ; @@ -601,6 +673,14 @@ test( macro , '29' , '5678' , '0' , '29' ) ; test( macro , '-29' , '5678' , '-1' , '5649' ) ; test( macro , '29' , '-5678' , '-1' , '-5649' ) ; test( macro , '-29' , '-5678' , '0' , '-29' ) ; +test( macro , '29' , '94906265' , '0' , '29' ) ; +test( macro , '-29' , '94906265' , '-1' , '94906236' ) ; +test( macro , '29' , '-94906265' , '-1' , '-94906236' ) ; +test( macro , '-29' , '-94906265' , '0' , '-29' ) ; +test( macro , '29' , '94906266' , '0' , '29' ) ; +test( macro , '-29' , '94906266' , '-1' , '94906237' ) ; +test( macro , '29' , '-94906266' , '-1' , '-94906237' ) ; +test( macro , '-29' , '-94906266' , '0' , '-29' ) ; test( macro , '29' , '1073741824' , '0' , '29' ) ; test( macro , '-29' , '1073741824' , '-1' , '1073741795' ) ; test( macro , '29' , '-1073741824' , '-1' , '-1073741795' ) ; @@ -661,6 +741,14 @@ test( macro , '1234' , '5678' , '0' , '1234' ) ; test( macro , '-1234' , '5678' , '-1' , '4444' ) ; test( macro , '1234' , '-5678' , '-1' , '-4444' ) ; test( macro , '-1234' , '-5678' , '0' , '-1234' ) ; +test( macro , '1234' , '94906265' , '0' , '1234' ) ; +test( macro , '-1234' , '94906265' , '-1' , '94905031' ) ; +test( macro , '1234' , '-94906265' , '-1' , '-94905031' ) ; +test( macro , '-1234' , '-94906265' , '0' , '-1234' ) ; +test( macro , '1234' , '94906266' , '0' , '1234' ) ; +test( macro , '-1234' , '94906266' , '-1' , '94905032' ) ; +test( macro , '1234' , '-94906266' , '-1' , '-94905032' ) ; +test( macro , '-1234' , '-94906266' , '0' , '-1234' ) ; test( macro , '1234' , '1073741824' , '0' , '1234' ) ; test( macro , '-1234' , '1073741824' , '-1' , '1073740590' ) ; test( macro , '1234' , '-1073741824' , '-1' , '-1073740590' ) ; @@ -721,6 +809,14 @@ test( macro , '5678' , '5678' , '1' , '0' ) ; test( macro , '-5678' , '5678' , '-1' , '0' ) ; test( macro , '5678' , '-5678' , '-1' , '0' ) ; test( macro , '-5678' , '-5678' , '1' , '0' ) ; +test( macro , '5678' , '94906265' , '0' , '5678' ) ; +test( macro , '-5678' , '94906265' , '-1' , '94900587' ) ; +test( macro , '5678' , '-94906265' , '-1' , '-94900587' ) ; +test( macro , '-5678' , '-94906265' , '0' , '-5678' ) ; +test( macro , '5678' , '94906266' , '0' , '5678' ) ; +test( macro , '-5678' , '94906266' , '-1' , '94900588' ) ; +test( macro , '5678' , '-94906266' , '-1' , '-94900588' ) ; +test( macro , '-5678' , '-94906266' , '0' , '-5678' ) ; test( macro , '5678' , '1073741824' , '0' , '5678' ) ; test( macro , '-5678' , '1073741824' , '-1' , '1073736146' ) ; test( macro , '5678' , '-1073741824' , '-1' , '-1073736146' ) ; @@ -733,6 +829,142 @@ test( macro , '5678' , '717897987691852588770249' , '0' , '5678' ) ; test( macro , '-5678' , '717897987691852588770249' , '-1' , '717897987691852588764571' ) ; test( macro , '5678' , '-717897987691852588770249' , '-1' , '-717897987691852588764571' ) ; test( macro , '-5678' , '-717897987691852588770249' , '0' , '-5678' ) ; +test( macro , '94906265' , '1' , '94906265' , '0' ) ; +test( macro , '-94906265' , '1' , '-94906265' , '0' ) ; +test( macro , '94906265' , '-1' , '-94906265' , '0' ) ; +test( macro , '-94906265' , '-1' , '94906265' , '0' ) ; +test( macro , '94906265' , '3' , '31635421' , '2' ) ; +test( macro , '-94906265' , '3' , '-31635422' , '1' ) ; +test( macro , '94906265' , '-3' , '-31635422' , '-1' ) ; +test( macro , '-94906265' , '-3' , '31635421' , '-2' ) ; +test( macro , '94906265' , '7' , '13558037' , '6' ) ; +test( macro , '-94906265' , '7' , '-13558038' , '1' ) ; +test( macro , '94906265' , '-7' , '-13558038' , '-1' ) ; +test( macro , '-94906265' , '-7' , '13558037' , '-6' ) ; +test( macro , '94906265' , '9' , '10545140' , '5' ) ; +test( macro , '-94906265' , '9' , '-10545141' , '4' ) ; +test( macro , '94906265' , '-9' , '-10545141' , '-4' ) ; +test( macro , '-94906265' , '-9' , '10545140' , '-5' ) ; +test( macro , '94906265' , '11' , '8627842' , '3' ) ; +test( macro , '-94906265' , '11' , '-8627843' , '8' ) ; +test( macro , '94906265' , '-11' , '-8627843' , '-8' ) ; +test( macro , '-94906265' , '-11' , '8627842' , '-3' ) ; +test( macro , '94906265' , '17' , '5582721' , '8' ) ; +test( macro , '-94906265' , '17' , '-5582722' , '9' ) ; +test( macro , '94906265' , '-17' , '-5582722' , '-9' ) ; +test( macro , '-94906265' , '-17' , '5582721' , '-8' ) ; +test( macro , '94906265' , '22' , '4313921' , '3' ) ; +test( macro , '-94906265' , '22' , '-4313922' , '19' ) ; +test( macro , '94906265' , '-22' , '-4313922' , '-19' ) ; +test( macro , '-94906265' , '-22' , '4313921' , '-3' ) ; +test( macro , '94906265' , '24' , '3954427' , '17' ) ; +test( macro , '-94906265' , '24' , '-3954428' , '7' ) ; +test( macro , '94906265' , '-24' , '-3954428' , '-7' ) ; +test( macro , '-94906265' , '-24' , '3954427' , '-17' ) ; +test( macro , '94906265' , '27' , '3515046' , '23' ) ; +test( macro , '-94906265' , '27' , '-3515047' , '4' ) ; +test( macro , '94906265' , '-27' , '-3515047' , '-4' ) ; +test( macro , '-94906265' , '-27' , '3515046' , '-23' ) ; +test( macro , '94906265' , '29' , '3272629' , '24' ) ; +test( macro , '-94906265' , '29' , '-3272630' , '5' ) ; +test( macro , '94906265' , '-29' , '-3272630' , '-5' ) ; +test( macro , '-94906265' , '-29' , '3272629' , '-24' ) ; +test( macro , '94906265' , '1234' , '76909' , '559' ) ; +test( macro , '-94906265' , '1234' , '-76910' , '675' ) ; +test( macro , '94906265' , '-1234' , '-76910' , '-675' ) ; +test( macro , '-94906265' , '-1234' , '76909' , '-559' ) ; +test( macro , '94906265' , '5678' , '16714' , '4173' ) ; +test( macro , '-94906265' , '5678' , '-16715' , '1505' ) ; +test( macro , '94906265' , '-5678' , '-16715' , '-1505' ) ; +test( macro , '-94906265' , '-5678' , '16714' , '-4173' ) ; +test( macro , '94906265' , '94906265' , '1' , '0' ) ; +test( macro , '-94906265' , '94906265' , '-1' , '0' ) ; +test( macro , '94906265' , '-94906265' , '-1' , '0' ) ; +test( macro , '-94906265' , '-94906265' , '1' , '0' ) ; +test( macro , '94906265' , '94906266' , '0' , '94906265' ) ; +test( macro , '-94906265' , '94906266' , '-1' , '1' ) ; +test( macro , '94906265' , '-94906266' , '-1' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '0' , '-94906265' ) ; +test( macro , '94906265' , '1073741824' , '0' , '94906265' ) ; +test( macro , '-94906265' , '1073741824' , '-1' , '978835559' ) ; +test( macro , '94906265' , '-1073741824' , '-1' , '-978835559' ) ; +test( macro , '-94906265' , '-1073741824' , '0' , '-94906265' ) ; +test( macro , '94906265' , '51676101935731' , '0' , '94906265' ) ; +test( macro , '-94906265' , '51676101935731' , '-1' , '51676007029466' ) ; +test( macro , '94906265' , '-51676101935731' , '-1' , '-51676007029466' ) ; +test( macro , '-94906265' , '-51676101935731' , '0' , '-94906265' ) ; +test( macro , '94906265' , '717897987691852588770249' , '0' , '94906265' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-1' , '717897987691852493863984' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-1' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '0' , '-94906265' ) ; +test( macro , '94906266' , '1' , '94906266' , '0' ) ; +test( macro , '-94906266' , '1' , '-94906266' , '0' ) ; +test( macro , '94906266' , '-1' , '-94906266' , '0' ) ; +test( macro , '-94906266' , '-1' , '94906266' , '0' ) ; +test( macro , '94906266' , '3' , '31635422' , '0' ) ; +test( macro , '-94906266' , '3' , '-31635422' , '0' ) ; +test( macro , '94906266' , '-3' , '-31635422' , '0' ) ; +test( macro , '-94906266' , '-3' , '31635422' , '0' ) ; +test( macro , '94906266' , '7' , '13558038' , '0' ) ; +test( macro , '-94906266' , '7' , '-13558038' , '0' ) ; +test( macro , '94906266' , '-7' , '-13558038' , '0' ) ; +test( macro , '-94906266' , '-7' , '13558038' , '0' ) ; +test( macro , '94906266' , '9' , '10545140' , '6' ) ; +test( macro , '-94906266' , '9' , '-10545141' , '3' ) ; +test( macro , '94906266' , '-9' , '-10545141' , '-3' ) ; +test( macro , '-94906266' , '-9' , '10545140' , '-6' ) ; +test( macro , '94906266' , '11' , '8627842' , '4' ) ; +test( macro , '-94906266' , '11' , '-8627843' , '7' ) ; +test( macro , '94906266' , '-11' , '-8627843' , '-7' ) ; +test( macro , '-94906266' , '-11' , '8627842' , '-4' ) ; +test( macro , '94906266' , '17' , '5582721' , '9' ) ; +test( macro , '-94906266' , '17' , '-5582722' , '8' ) ; +test( macro , '94906266' , '-17' , '-5582722' , '-8' ) ; +test( macro , '-94906266' , '-17' , '5582721' , '-9' ) ; +test( macro , '94906266' , '22' , '4313921' , '4' ) ; +test( macro , '-94906266' , '22' , '-4313922' , '18' ) ; +test( macro , '94906266' , '-22' , '-4313922' , '-18' ) ; +test( macro , '-94906266' , '-22' , '4313921' , '-4' ) ; +test( macro , '94906266' , '24' , '3954427' , '18' ) ; +test( macro , '-94906266' , '24' , '-3954428' , '6' ) ; +test( macro , '94906266' , '-24' , '-3954428' , '-6' ) ; +test( macro , '-94906266' , '-24' , '3954427' , '-18' ) ; +test( macro , '94906266' , '27' , '3515046' , '24' ) ; +test( macro , '-94906266' , '27' , '-3515047' , '3' ) ; +test( macro , '94906266' , '-27' , '-3515047' , '-3' ) ; +test( macro , '-94906266' , '-27' , '3515046' , '-24' ) ; +test( macro , '94906266' , '29' , '3272629' , '25' ) ; +test( macro , '-94906266' , '29' , '-3272630' , '4' ) ; +test( macro , '94906266' , '-29' , '-3272630' , '-4' ) ; +test( macro , '-94906266' , '-29' , '3272629' , '-25' ) ; +test( macro , '94906266' , '1234' , '76909' , '560' ) ; +test( macro , '-94906266' , '1234' , '-76910' , '674' ) ; +test( macro , '94906266' , '-1234' , '-76910' , '-674' ) ; +test( macro , '-94906266' , '-1234' , '76909' , '-560' ) ; +test( macro , '94906266' , '5678' , '16714' , '4174' ) ; +test( macro , '-94906266' , '5678' , '-16715' , '1504' ) ; +test( macro , '94906266' , '-5678' , '-16715' , '-1504' ) ; +test( macro , '-94906266' , '-5678' , '16714' , '-4174' ) ; +test( macro , '94906266' , '94906265' , '1' , '1' ) ; +test( macro , '-94906266' , '94906265' , '-2' , '94906264' ) ; +test( macro , '94906266' , '-94906265' , '-2' , '-94906264' ) ; +test( macro , '-94906266' , '-94906265' , '1' , '-1' ) ; +test( macro , '94906266' , '94906266' , '1' , '0' ) ; +test( macro , '-94906266' , '94906266' , '-1' , '0' ) ; +test( macro , '94906266' , '-94906266' , '-1' , '0' ) ; +test( macro , '-94906266' , '-94906266' , '1' , '0' ) ; +test( macro , '94906266' , '1073741824' , '0' , '94906266' ) ; +test( macro , '-94906266' , '1073741824' , '-1' , '978835558' ) ; +test( macro , '94906266' , '-1073741824' , '-1' , '-978835558' ) ; +test( macro , '-94906266' , '-1073741824' , '0' , '-94906266' ) ; +test( macro , '94906266' , '51676101935731' , '0' , '94906266' ) ; +test( macro , '-94906266' , '51676101935731' , '-1' , '51676007029465' ) ; +test( macro , '94906266' , '-51676101935731' , '-1' , '-51676007029465' ) ; +test( macro , '-94906266' , '-51676101935731' , '0' , '-94906266' ) ; +test( macro , '94906266' , '717897987691852588770249' , '0' , '94906266' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-1' , '717897987691852493863983' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-1' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '0' , '-94906266' ) ; test( macro , '1073741824' , '1' , '1073741824' , '0' ) ; test( macro , '-1073741824' , '1' , '-1073741824' , '0' ) ; test( macro , '1073741824' , '-1' , '-1073741824' , '0' ) ; @@ -781,6 +1013,14 @@ test( macro , '1073741824' , '5678' , '189105' , '3634' ) ; test( macro , '-1073741824' , '5678' , '-189106' , '2044' ) ; test( macro , '1073741824' , '-5678' , '-189106' , '-2044' ) ; test( macro , '-1073741824' , '-5678' , '189105' , '-3634' ) ; +test( macro , '1073741824' , '94906265' , '11' , '29772909' ) ; +test( macro , '-1073741824' , '94906265' , '-12' , '65133356' ) ; +test( macro , '1073741824' , '-94906265' , '-12' , '-65133356' ) ; +test( macro , '-1073741824' , '-94906265' , '11' , '-29772909' ) ; +test( macro , '1073741824' , '94906266' , '11' , '29772898' ) ; +test( macro , '-1073741824' , '94906266' , '-12' , '65133368' ) ; +test( macro , '1073741824' , '-94906266' , '-12' , '-65133368' ) ; +test( macro , '-1073741824' , '-94906266' , '11' , '-29772898' ) ; test( macro , '1073741824' , '1073741824' , '1' , '0' ) ; test( macro , '-1073741824' , '1073741824' , '-1' , '0' ) ; test( macro , '1073741824' , '-1073741824' , '-1' , '0' ) ; @@ -841,6 +1081,14 @@ test( macro , '51676101935731' , '5678' , '9101109886' , '3023' ) ; test( macro , '-51676101935731' , '5678' , '-9101109887' , '2655' ) ; test( macro , '51676101935731' , '-5678' , '-9101109887' , '-2655' ) ; test( macro , '-51676101935731' , '-5678' , '9101109886' , '-3023' ) ; +test( macro , '51676101935731' , '94906265' , '544496' , '20268291' ) ; +test( macro , '-51676101935731' , '94906265' , '-544497' , '74637974' ) ; +test( macro , '51676101935731' , '-94906265' , '-544497' , '-74637974' ) ; +test( macro , '-51676101935731' , '-94906265' , '544496' , '-20268291' ) ; +test( macro , '51676101935731' , '94906266' , '544496' , '19723795' ) ; +test( macro , '-51676101935731' , '94906266' , '-544497' , '75182471' ) ; +test( macro , '51676101935731' , '-94906266' , '-544497' , '-75182471' ) ; +test( macro , '-51676101935731' , '-94906266' , '544496' , '-19723795' ) ; test( macro , '51676101935731' , '1073741824' , '48127' , '129172083' ) ; test( macro , '-51676101935731' , '1073741824' , '-48128' , '944569741' ) ; test( macro , '51676101935731' , '-1073741824' , '-48128' , '-944569741' ) ; @@ -901,6 +1149,14 @@ test( macro , '717897987691852588770249' , '5678' , '126435010160593974774' , '3 test( macro , '-717897987691852588770249' , '5678' , '-126435010160593974775' , '2201' ) ; test( macro , '717897987691852588770249' , '-5678' , '-126435010160593974775' , '-2201' ) ; test( macro , '-717897987691852588770249' , '-5678' , '126435010160593974774' , '-3477' ) ; +test( macro , '717897987691852588770249' , '94906265' , '7564284483135571' , '56517934' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-7564284483135572' , '38388331' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-7564284483135572' , '-38388331' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '7564284483135571' , '-56517934' ) ; +test( macro , '717897987691852588770249' , '94906266' , '7564284403432883' , '81625371' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-7564284403432884' , '13280895' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-7564284403432884' , '-13280895' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '7564284403432883' , '-81625371' ) ; test( macro , '717897987691852588770249' , '1073741824' , '668594602208447' , '278782921' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-668594602208448' , '794958903' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-668594602208448' , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/divmodn.js b/test/src/integer/arithmetic/divmodn.js index fed6787..8ad08f8 100644 --- a/test/src/integer/arithmetic/divmodn.js +++ b/test/src/integer/arithmetic/divmodn.js @@ -59,6 +59,14 @@ test( macro , '1' , 5678 , '0' , '1' ) ; test( macro , '-1' , 5678 , '-1' , '5677' ) ; test( macro , '1' , -5678 , '-1' , '-5677' ) ; test( macro , '-1' , -5678 , '0' , '-1' ) ; +test( macro , '1' , 94906265 , '0' , '1' ) ; +test( macro , '-1' , 94906265 , '-1' , '94906264' ) ; +test( macro , '1' , -94906265 , '-1' , '-94906264' ) ; +test( macro , '-1' , -94906265 , '0' , '-1' ) ; +test( macro , '1' , 94906266 , '0' , '1' ) ; +test( macro , '-1' , 94906266 , '-1' , '94906265' ) ; +test( macro , '1' , -94906266 , '-1' , '-94906265' ) ; +test( macro , '-1' , -94906266 , '0' , '-1' ) ; test( macro , '1' , 1073741824 , '0' , '1' ) ; test( macro , '-1' , 1073741824 , '-1' , '1073741823' ) ; test( macro , '1' , -1073741824 , '-1' , '-1073741823' ) ; @@ -115,6 +123,14 @@ test( macro , '3' , 5678 , '0' , '3' ) ; test( macro , '-3' , 5678 , '-1' , '5675' ) ; test( macro , '3' , -5678 , '-1' , '-5675' ) ; test( macro , '-3' , -5678 , '0' , '-3' ) ; +test( macro , '3' , 94906265 , '0' , '3' ) ; +test( macro , '-3' , 94906265 , '-1' , '94906262' ) ; +test( macro , '3' , -94906265 , '-1' , '-94906262' ) ; +test( macro , '-3' , -94906265 , '0' , '-3' ) ; +test( macro , '3' , 94906266 , '0' , '3' ) ; +test( macro , '-3' , 94906266 , '-1' , '94906263' ) ; +test( macro , '3' , -94906266 , '-1' , '-94906263' ) ; +test( macro , '-3' , -94906266 , '0' , '-3' ) ; test( macro , '3' , 1073741824 , '0' , '3' ) ; test( macro , '-3' , 1073741824 , '-1' , '1073741821' ) ; test( macro , '3' , -1073741824 , '-1' , '-1073741821' ) ; @@ -171,6 +187,14 @@ test( macro , '7' , 5678 , '0' , '7' ) ; test( macro , '-7' , 5678 , '-1' , '5671' ) ; test( macro , '7' , -5678 , '-1' , '-5671' ) ; test( macro , '-7' , -5678 , '0' , '-7' ) ; +test( macro , '7' , 94906265 , '0' , '7' ) ; +test( macro , '-7' , 94906265 , '-1' , '94906258' ) ; +test( macro , '7' , -94906265 , '-1' , '-94906258' ) ; +test( macro , '-7' , -94906265 , '0' , '-7' ) ; +test( macro , '7' , 94906266 , '0' , '7' ) ; +test( macro , '-7' , 94906266 , '-1' , '94906259' ) ; +test( macro , '7' , -94906266 , '-1' , '-94906259' ) ; +test( macro , '-7' , -94906266 , '0' , '-7' ) ; test( macro , '7' , 1073741824 , '0' , '7' ) ; test( macro , '-7' , 1073741824 , '-1' , '1073741817' ) ; test( macro , '7' , -1073741824 , '-1' , '-1073741817' ) ; @@ -227,6 +251,14 @@ test( macro , '9' , 5678 , '0' , '9' ) ; test( macro , '-9' , 5678 , '-1' , '5669' ) ; test( macro , '9' , -5678 , '-1' , '-5669' ) ; test( macro , '-9' , -5678 , '0' , '-9' ) ; +test( macro , '9' , 94906265 , '0' , '9' ) ; +test( macro , '-9' , 94906265 , '-1' , '94906256' ) ; +test( macro , '9' , -94906265 , '-1' , '-94906256' ) ; +test( macro , '-9' , -94906265 , '0' , '-9' ) ; +test( macro , '9' , 94906266 , '0' , '9' ) ; +test( macro , '-9' , 94906266 , '-1' , '94906257' ) ; +test( macro , '9' , -94906266 , '-1' , '-94906257' ) ; +test( macro , '-9' , -94906266 , '0' , '-9' ) ; test( macro , '9' , 1073741824 , '0' , '9' ) ; test( macro , '-9' , 1073741824 , '-1' , '1073741815' ) ; test( macro , '9' , -1073741824 , '-1' , '-1073741815' ) ; @@ -283,6 +315,14 @@ test( macro , '11' , 5678 , '0' , '11' ) ; test( macro , '-11' , 5678 , '-1' , '5667' ) ; test( macro , '11' , -5678 , '-1' , '-5667' ) ; test( macro , '-11' , -5678 , '0' , '-11' ) ; +test( macro , '11' , 94906265 , '0' , '11' ) ; +test( macro , '-11' , 94906265 , '-1' , '94906254' ) ; +test( macro , '11' , -94906265 , '-1' , '-94906254' ) ; +test( macro , '-11' , -94906265 , '0' , '-11' ) ; +test( macro , '11' , 94906266 , '0' , '11' ) ; +test( macro , '-11' , 94906266 , '-1' , '94906255' ) ; +test( macro , '11' , -94906266 , '-1' , '-94906255' ) ; +test( macro , '-11' , -94906266 , '0' , '-11' ) ; test( macro , '11' , 1073741824 , '0' , '11' ) ; test( macro , '-11' , 1073741824 , '-1' , '1073741813' ) ; test( macro , '11' , -1073741824 , '-1' , '-1073741813' ) ; @@ -339,6 +379,14 @@ test( macro , '17' , 5678 , '0' , '17' ) ; test( macro , '-17' , 5678 , '-1' , '5661' ) ; test( macro , '17' , -5678 , '-1' , '-5661' ) ; test( macro , '-17' , -5678 , '0' , '-17' ) ; +test( macro , '17' , 94906265 , '0' , '17' ) ; +test( macro , '-17' , 94906265 , '-1' , '94906248' ) ; +test( macro , '17' , -94906265 , '-1' , '-94906248' ) ; +test( macro , '-17' , -94906265 , '0' , '-17' ) ; +test( macro , '17' , 94906266 , '0' , '17' ) ; +test( macro , '-17' , 94906266 , '-1' , '94906249' ) ; +test( macro , '17' , -94906266 , '-1' , '-94906249' ) ; +test( macro , '-17' , -94906266 , '0' , '-17' ) ; test( macro , '17' , 1073741824 , '0' , '17' ) ; test( macro , '-17' , 1073741824 , '-1' , '1073741807' ) ; test( macro , '17' , -1073741824 , '-1' , '-1073741807' ) ; @@ -395,6 +443,14 @@ test( macro , '22' , 5678 , '0' , '22' ) ; test( macro , '-22' , 5678 , '-1' , '5656' ) ; test( macro , '22' , -5678 , '-1' , '-5656' ) ; test( macro , '-22' , -5678 , '0' , '-22' ) ; +test( macro , '22' , 94906265 , '0' , '22' ) ; +test( macro , '-22' , 94906265 , '-1' , '94906243' ) ; +test( macro , '22' , -94906265 , '-1' , '-94906243' ) ; +test( macro , '-22' , -94906265 , '0' , '-22' ) ; +test( macro , '22' , 94906266 , '0' , '22' ) ; +test( macro , '-22' , 94906266 , '-1' , '94906244' ) ; +test( macro , '22' , -94906266 , '-1' , '-94906244' ) ; +test( macro , '-22' , -94906266 , '0' , '-22' ) ; test( macro , '22' , 1073741824 , '0' , '22' ) ; test( macro , '-22' , 1073741824 , '-1' , '1073741802' ) ; test( macro , '22' , -1073741824 , '-1' , '-1073741802' ) ; @@ -451,6 +507,14 @@ test( macro , '24' , 5678 , '0' , '24' ) ; test( macro , '-24' , 5678 , '-1' , '5654' ) ; test( macro , '24' , -5678 , '-1' , '-5654' ) ; test( macro , '-24' , -5678 , '0' , '-24' ) ; +test( macro , '24' , 94906265 , '0' , '24' ) ; +test( macro , '-24' , 94906265 , '-1' , '94906241' ) ; +test( macro , '24' , -94906265 , '-1' , '-94906241' ) ; +test( macro , '-24' , -94906265 , '0' , '-24' ) ; +test( macro , '24' , 94906266 , '0' , '24' ) ; +test( macro , '-24' , 94906266 , '-1' , '94906242' ) ; +test( macro , '24' , -94906266 , '-1' , '-94906242' ) ; +test( macro , '-24' , -94906266 , '0' , '-24' ) ; test( macro , '24' , 1073741824 , '0' , '24' ) ; test( macro , '-24' , 1073741824 , '-1' , '1073741800' ) ; test( macro , '24' , -1073741824 , '-1' , '-1073741800' ) ; @@ -507,6 +571,14 @@ test( macro , '27' , 5678 , '0' , '27' ) ; test( macro , '-27' , 5678 , '-1' , '5651' ) ; test( macro , '27' , -5678 , '-1' , '-5651' ) ; test( macro , '-27' , -5678 , '0' , '-27' ) ; +test( macro , '27' , 94906265 , '0' , '27' ) ; +test( macro , '-27' , 94906265 , '-1' , '94906238' ) ; +test( macro , '27' , -94906265 , '-1' , '-94906238' ) ; +test( macro , '-27' , -94906265 , '0' , '-27' ) ; +test( macro , '27' , 94906266 , '0' , '27' ) ; +test( macro , '-27' , 94906266 , '-1' , '94906239' ) ; +test( macro , '27' , -94906266 , '-1' , '-94906239' ) ; +test( macro , '-27' , -94906266 , '0' , '-27' ) ; test( macro , '27' , 1073741824 , '0' , '27' ) ; test( macro , '-27' , 1073741824 , '-1' , '1073741797' ) ; test( macro , '27' , -1073741824 , '-1' , '-1073741797' ) ; @@ -563,6 +635,14 @@ test( macro , '29' , 5678 , '0' , '29' ) ; test( macro , '-29' , 5678 , '-1' , '5649' ) ; test( macro , '29' , -5678 , '-1' , '-5649' ) ; test( macro , '-29' , -5678 , '0' , '-29' ) ; +test( macro , '29' , 94906265 , '0' , '29' ) ; +test( macro , '-29' , 94906265 , '-1' , '94906236' ) ; +test( macro , '29' , -94906265 , '-1' , '-94906236' ) ; +test( macro , '-29' , -94906265 , '0' , '-29' ) ; +test( macro , '29' , 94906266 , '0' , '29' ) ; +test( macro , '-29' , 94906266 , '-1' , '94906237' ) ; +test( macro , '29' , -94906266 , '-1' , '-94906237' ) ; +test( macro , '-29' , -94906266 , '0' , '-29' ) ; test( macro , '29' , 1073741824 , '0' , '29' ) ; test( macro , '-29' , 1073741824 , '-1' , '1073741795' ) ; test( macro , '29' , -1073741824 , '-1' , '-1073741795' ) ; @@ -619,6 +699,14 @@ test( macro , '1234' , 5678 , '0' , '1234' ) ; test( macro , '-1234' , 5678 , '-1' , '4444' ) ; test( macro , '1234' , -5678 , '-1' , '-4444' ) ; test( macro , '-1234' , -5678 , '0' , '-1234' ) ; +test( macro , '1234' , 94906265 , '0' , '1234' ) ; +test( macro , '-1234' , 94906265 , '-1' , '94905031' ) ; +test( macro , '1234' , -94906265 , '-1' , '-94905031' ) ; +test( macro , '-1234' , -94906265 , '0' , '-1234' ) ; +test( macro , '1234' , 94906266 , '0' , '1234' ) ; +test( macro , '-1234' , 94906266 , '-1' , '94905032' ) ; +test( macro , '1234' , -94906266 , '-1' , '-94905032' ) ; +test( macro , '-1234' , -94906266 , '0' , '-1234' ) ; test( macro , '1234' , 1073741824 , '0' , '1234' ) ; test( macro , '-1234' , 1073741824 , '-1' , '1073740590' ) ; test( macro , '1234' , -1073741824 , '-1' , '-1073740590' ) ; @@ -675,6 +763,14 @@ test( macro , '5678' , 5678 , '1' , '0' ) ; test( macro , '-5678' , 5678 , '-1' , '0' ) ; test( macro , '5678' , -5678 , '-1' , '0' ) ; test( macro , '-5678' , -5678 , '1' , '0' ) ; +test( macro , '5678' , 94906265 , '0' , '5678' ) ; +test( macro , '-5678' , 94906265 , '-1' , '94900587' ) ; +test( macro , '5678' , -94906265 , '-1' , '-94900587' ) ; +test( macro , '-5678' , -94906265 , '0' , '-5678' ) ; +test( macro , '5678' , 94906266 , '0' , '5678' ) ; +test( macro , '-5678' , 94906266 , '-1' , '94900588' ) ; +test( macro , '5678' , -94906266 , '-1' , '-94900588' ) ; +test( macro , '-5678' , -94906266 , '0' , '-5678' ) ; test( macro , '5678' , 1073741824 , '0' , '5678' ) ; test( macro , '-5678' , 1073741824 , '-1' , '1073736146' ) ; test( macro , '5678' , -1073741824 , '-1' , '-1073736146' ) ; @@ -683,6 +779,134 @@ test( macro , '5678' , 51676101935731 , '0' , '5678' ) ; test( macro , '-5678' , 51676101935731 , '-1' , '51676101930053' ) ; test( macro , '5678' , -51676101935731 , '-1' , '-51676101930053' ) ; test( macro , '-5678' , -51676101935731 , '0' , '-5678' ) ; +test( macro , '94906265' , 1 , '94906265' , '0' ) ; +test( macro , '-94906265' , 1 , '-94906265' , '0' ) ; +test( macro , '94906265' , -1 , '-94906265' , '0' ) ; +test( macro , '-94906265' , -1 , '94906265' , '0' ) ; +test( macro , '94906265' , 3 , '31635421' , '2' ) ; +test( macro , '-94906265' , 3 , '-31635422' , '1' ) ; +test( macro , '94906265' , -3 , '-31635422' , '-1' ) ; +test( macro , '-94906265' , -3 , '31635421' , '-2' ) ; +test( macro , '94906265' , 7 , '13558037' , '6' ) ; +test( macro , '-94906265' , 7 , '-13558038' , '1' ) ; +test( macro , '94906265' , -7 , '-13558038' , '-1' ) ; +test( macro , '-94906265' , -7 , '13558037' , '-6' ) ; +test( macro , '94906265' , 9 , '10545140' , '5' ) ; +test( macro , '-94906265' , 9 , '-10545141' , '4' ) ; +test( macro , '94906265' , -9 , '-10545141' , '-4' ) ; +test( macro , '-94906265' , -9 , '10545140' , '-5' ) ; +test( macro , '94906265' , 11 , '8627842' , '3' ) ; +test( macro , '-94906265' , 11 , '-8627843' , '8' ) ; +test( macro , '94906265' , -11 , '-8627843' , '-8' ) ; +test( macro , '-94906265' , -11 , '8627842' , '-3' ) ; +test( macro , '94906265' , 17 , '5582721' , '8' ) ; +test( macro , '-94906265' , 17 , '-5582722' , '9' ) ; +test( macro , '94906265' , -17 , '-5582722' , '-9' ) ; +test( macro , '-94906265' , -17 , '5582721' , '-8' ) ; +test( macro , '94906265' , 22 , '4313921' , '3' ) ; +test( macro , '-94906265' , 22 , '-4313922' , '19' ) ; +test( macro , '94906265' , -22 , '-4313922' , '-19' ) ; +test( macro , '-94906265' , -22 , '4313921' , '-3' ) ; +test( macro , '94906265' , 24 , '3954427' , '17' ) ; +test( macro , '-94906265' , 24 , '-3954428' , '7' ) ; +test( macro , '94906265' , -24 , '-3954428' , '-7' ) ; +test( macro , '-94906265' , -24 , '3954427' , '-17' ) ; +test( macro , '94906265' , 27 , '3515046' , '23' ) ; +test( macro , '-94906265' , 27 , '-3515047' , '4' ) ; +test( macro , '94906265' , -27 , '-3515047' , '-4' ) ; +test( macro , '-94906265' , -27 , '3515046' , '-23' ) ; +test( macro , '94906265' , 29 , '3272629' , '24' ) ; +test( macro , '-94906265' , 29 , '-3272630' , '5' ) ; +test( macro , '94906265' , -29 , '-3272630' , '-5' ) ; +test( macro , '-94906265' , -29 , '3272629' , '-24' ) ; +test( macro , '94906265' , 1234 , '76909' , '559' ) ; +test( macro , '-94906265' , 1234 , '-76910' , '675' ) ; +test( macro , '94906265' , -1234 , '-76910' , '-675' ) ; +test( macro , '-94906265' , -1234 , '76909' , '-559' ) ; +test( macro , '94906265' , 5678 , '16714' , '4173' ) ; +test( macro , '-94906265' , 5678 , '-16715' , '1505' ) ; +test( macro , '94906265' , -5678 , '-16715' , '-1505' ) ; +test( macro , '-94906265' , -5678 , '16714' , '-4173' ) ; +test( macro , '94906265' , 94906265 , '1' , '0' ) ; +test( macro , '-94906265' , 94906265 , '-1' , '0' ) ; +test( macro , '94906265' , -94906265 , '-1' , '0' ) ; +test( macro , '-94906265' , -94906265 , '1' , '0' ) ; +test( macro , '94906265' , 94906266 , '0' , '94906265' ) ; +test( macro , '-94906265' , 94906266 , '-1' , '1' ) ; +test( macro , '94906265' , -94906266 , '-1' , '-1' ) ; +test( macro , '-94906265' , -94906266 , '0' , '-94906265' ) ; +test( macro , '94906265' , 1073741824 , '0' , '94906265' ) ; +test( macro , '-94906265' , 1073741824 , '-1' , '978835559' ) ; +test( macro , '94906265' , -1073741824 , '-1' , '-978835559' ) ; +test( macro , '-94906265' , -1073741824 , '0' , '-94906265' ) ; +test( macro , '94906265' , 51676101935731 , '0' , '94906265' ) ; +test( macro , '-94906265' , 51676101935731 , '-1' , '51676007029466' ) ; +test( macro , '94906265' , -51676101935731 , '-1' , '-51676007029466' ) ; +test( macro , '-94906265' , -51676101935731 , '0' , '-94906265' ) ; +test( macro , '94906266' , 1 , '94906266' , '0' ) ; +test( macro , '-94906266' , 1 , '-94906266' , '0' ) ; +test( macro , '94906266' , -1 , '-94906266' , '0' ) ; +test( macro , '-94906266' , -1 , '94906266' , '0' ) ; +test( macro , '94906266' , 3 , '31635422' , '0' ) ; +test( macro , '-94906266' , 3 , '-31635422' , '0' ) ; +test( macro , '94906266' , -3 , '-31635422' , '0' ) ; +test( macro , '-94906266' , -3 , '31635422' , '0' ) ; +test( macro , '94906266' , 7 , '13558038' , '0' ) ; +test( macro , '-94906266' , 7 , '-13558038' , '0' ) ; +test( macro , '94906266' , -7 , '-13558038' , '0' ) ; +test( macro , '-94906266' , -7 , '13558038' , '0' ) ; +test( macro , '94906266' , 9 , '10545140' , '6' ) ; +test( macro , '-94906266' , 9 , '-10545141' , '3' ) ; +test( macro , '94906266' , -9 , '-10545141' , '-3' ) ; +test( macro , '-94906266' , -9 , '10545140' , '-6' ) ; +test( macro , '94906266' , 11 , '8627842' , '4' ) ; +test( macro , '-94906266' , 11 , '-8627843' , '7' ) ; +test( macro , '94906266' , -11 , '-8627843' , '-7' ) ; +test( macro , '-94906266' , -11 , '8627842' , '-4' ) ; +test( macro , '94906266' , 17 , '5582721' , '9' ) ; +test( macro , '-94906266' , 17 , '-5582722' , '8' ) ; +test( macro , '94906266' , -17 , '-5582722' , '-8' ) ; +test( macro , '-94906266' , -17 , '5582721' , '-9' ) ; +test( macro , '94906266' , 22 , '4313921' , '4' ) ; +test( macro , '-94906266' , 22 , '-4313922' , '18' ) ; +test( macro , '94906266' , -22 , '-4313922' , '-18' ) ; +test( macro , '-94906266' , -22 , '4313921' , '-4' ) ; +test( macro , '94906266' , 24 , '3954427' , '18' ) ; +test( macro , '-94906266' , 24 , '-3954428' , '6' ) ; +test( macro , '94906266' , -24 , '-3954428' , '-6' ) ; +test( macro , '-94906266' , -24 , '3954427' , '-18' ) ; +test( macro , '94906266' , 27 , '3515046' , '24' ) ; +test( macro , '-94906266' , 27 , '-3515047' , '3' ) ; +test( macro , '94906266' , -27 , '-3515047' , '-3' ) ; +test( macro , '-94906266' , -27 , '3515046' , '-24' ) ; +test( macro , '94906266' , 29 , '3272629' , '25' ) ; +test( macro , '-94906266' , 29 , '-3272630' , '4' ) ; +test( macro , '94906266' , -29 , '-3272630' , '-4' ) ; +test( macro , '-94906266' , -29 , '3272629' , '-25' ) ; +test( macro , '94906266' , 1234 , '76909' , '560' ) ; +test( macro , '-94906266' , 1234 , '-76910' , '674' ) ; +test( macro , '94906266' , -1234 , '-76910' , '-674' ) ; +test( macro , '-94906266' , -1234 , '76909' , '-560' ) ; +test( macro , '94906266' , 5678 , '16714' , '4174' ) ; +test( macro , '-94906266' , 5678 , '-16715' , '1504' ) ; +test( macro , '94906266' , -5678 , '-16715' , '-1504' ) ; +test( macro , '-94906266' , -5678 , '16714' , '-4174' ) ; +test( macro , '94906266' , 94906265 , '1' , '1' ) ; +test( macro , '-94906266' , 94906265 , '-2' , '94906264' ) ; +test( macro , '94906266' , -94906265 , '-2' , '-94906264' ) ; +test( macro , '-94906266' , -94906265 , '1' , '-1' ) ; +test( macro , '94906266' , 94906266 , '1' , '0' ) ; +test( macro , '-94906266' , 94906266 , '-1' , '0' ) ; +test( macro , '94906266' , -94906266 , '-1' , '0' ) ; +test( macro , '-94906266' , -94906266 , '1' , '0' ) ; +test( macro , '94906266' , 1073741824 , '0' , '94906266' ) ; +test( macro , '-94906266' , 1073741824 , '-1' , '978835558' ) ; +test( macro , '94906266' , -1073741824 , '-1' , '-978835558' ) ; +test( macro , '-94906266' , -1073741824 , '0' , '-94906266' ) ; +test( macro , '94906266' , 51676101935731 , '0' , '94906266' ) ; +test( macro , '-94906266' , 51676101935731 , '-1' , '51676007029465' ) ; +test( macro , '94906266' , -51676101935731 , '-1' , '-51676007029465' ) ; +test( macro , '-94906266' , -51676101935731 , '0' , '-94906266' ) ; test( macro , '1073741824' , 1 , '1073741824' , '0' ) ; test( macro , '-1073741824' , 1 , '-1073741824' , '0' ) ; test( macro , '1073741824' , -1 , '-1073741824' , '0' ) ; @@ -731,6 +955,14 @@ test( macro , '1073741824' , 5678 , '189105' , '3634' ) ; test( macro , '-1073741824' , 5678 , '-189106' , '2044' ) ; test( macro , '1073741824' , -5678 , '-189106' , '-2044' ) ; test( macro , '-1073741824' , -5678 , '189105' , '-3634' ) ; +test( macro , '1073741824' , 94906265 , '11' , '29772909' ) ; +test( macro , '-1073741824' , 94906265 , '-12' , '65133356' ) ; +test( macro , '1073741824' , -94906265 , '-12' , '-65133356' ) ; +test( macro , '-1073741824' , -94906265 , '11' , '-29772909' ) ; +test( macro , '1073741824' , 94906266 , '11' , '29772898' ) ; +test( macro , '-1073741824' , 94906266 , '-12' , '65133368' ) ; +test( macro , '1073741824' , -94906266 , '-12' , '-65133368' ) ; +test( macro , '-1073741824' , -94906266 , '11' , '-29772898' ) ; test( macro , '1073741824' , 1073741824 , '1' , '0' ) ; test( macro , '-1073741824' , 1073741824 , '-1' , '0' ) ; test( macro , '1073741824' , -1073741824 , '-1' , '0' ) ; @@ -787,6 +1019,14 @@ test( macro , '51676101935731' , 5678 , '9101109886' , '3023' ) ; test( macro , '-51676101935731' , 5678 , '-9101109887' , '2655' ) ; test( macro , '51676101935731' , -5678 , '-9101109887' , '-2655' ) ; test( macro , '-51676101935731' , -5678 , '9101109886' , '-3023' ) ; +test( macro , '51676101935731' , 94906265 , '544496' , '20268291' ) ; +test( macro , '-51676101935731' , 94906265 , '-544497' , '74637974' ) ; +test( macro , '51676101935731' , -94906265 , '-544497' , '-74637974' ) ; +test( macro , '-51676101935731' , -94906265 , '544496' , '-20268291' ) ; +test( macro , '51676101935731' , 94906266 , '544496' , '19723795' ) ; +test( macro , '-51676101935731' , 94906266 , '-544497' , '75182471' ) ; +test( macro , '51676101935731' , -94906266 , '-544497' , '-75182471' ) ; +test( macro , '-51676101935731' , -94906266 , '544496' , '-19723795' ) ; test( macro , '51676101935731' , 1073741824 , '48127' , '129172083' ) ; test( macro , '-51676101935731' , 1073741824 , '-48128' , '944569741' ) ; test( macro , '51676101935731' , -1073741824 , '-48128' , '-944569741' ) ; @@ -843,6 +1083,14 @@ test( macro , '717897987691852588770249' , 5678 , '126435010160593974774' , '347 test( macro , '-717897987691852588770249' , 5678 , '-126435010160593974775' , '2201' ) ; test( macro , '717897987691852588770249' , -5678 , '-126435010160593974775' , '-2201' ) ; test( macro , '-717897987691852588770249' , -5678 , '126435010160593974774' , '-3477' ) ; +test( macro , '717897987691852588770249' , 94906265 , '7564284483135571' , '56517934' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-7564284483135572' , '38388331' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-7564284483135572' , '-38388331' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '7564284483135571' , '-56517934' ) ; +test( macro , '717897987691852588770249' , 94906266 , '7564284403432883' , '81625371' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-7564284403432884' , '13280895' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-7564284403432884' , '-13280895' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '7564284403432883' , '-81625371' ) ; test( macro , '717897987691852588770249' , 1073741824 , '668594602208447' , '278782921' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-668594602208448' , '794958903' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-668594602208448' , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/divn.js b/test/src/integer/arithmetic/divn.js index 7fd7fbc..97ee48e 100644 --- a/test/src/integer/arithmetic/divn.js +++ b/test/src/integer/arithmetic/divn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '0' ) ; test( macro , '-1' , 5678 , '-1' ) ; test( macro , '1' , -5678 , '-1' ) ; test( macro , '-1' , -5678 , '0' ) ; +test( macro , '1' , 94906265 , '0' ) ; +test( macro , '-1' , 94906265 , '-1' ) ; +test( macro , '1' , -94906265 , '-1' ) ; +test( macro , '-1' , -94906265 , '0' ) ; +test( macro , '1' , 94906266 , '0' ) ; +test( macro , '-1' , 94906266 , '-1' ) ; +test( macro , '1' , -94906266 , '-1' ) ; +test( macro , '-1' , -94906266 , '0' ) ; test( macro , '1' , 1073741824 , '0' ) ; test( macro , '-1' , 1073741824 , '-1' ) ; test( macro , '1' , -1073741824 , '-1' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '0' ) ; test( macro , '-3' , 5678 , '-1' ) ; test( macro , '3' , -5678 , '-1' ) ; test( macro , '-3' , -5678 , '0' ) ; +test( macro , '3' , 94906265 , '0' ) ; +test( macro , '-3' , 94906265 , '-1' ) ; +test( macro , '3' , -94906265 , '-1' ) ; +test( macro , '-3' , -94906265 , '0' ) ; +test( macro , '3' , 94906266 , '0' ) ; +test( macro , '-3' , 94906266 , '-1' ) ; +test( macro , '3' , -94906266 , '-1' ) ; +test( macro , '-3' , -94906266 , '0' ) ; test( macro , '3' , 1073741824 , '0' ) ; test( macro , '-3' , 1073741824 , '-1' ) ; test( macro , '3' , -1073741824 , '-1' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '0' ) ; test( macro , '-7' , 5678 , '-1' ) ; test( macro , '7' , -5678 , '-1' ) ; test( macro , '-7' , -5678 , '0' ) ; +test( macro , '7' , 94906265 , '0' ) ; +test( macro , '-7' , 94906265 , '-1' ) ; +test( macro , '7' , -94906265 , '-1' ) ; +test( macro , '-7' , -94906265 , '0' ) ; +test( macro , '7' , 94906266 , '0' ) ; +test( macro , '-7' , 94906266 , '-1' ) ; +test( macro , '7' , -94906266 , '-1' ) ; +test( macro , '-7' , -94906266 , '0' ) ; test( macro , '7' , 1073741824 , '0' ) ; test( macro , '-7' , 1073741824 , '-1' ) ; test( macro , '7' , -1073741824 , '-1' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '0' ) ; test( macro , '-9' , 5678 , '-1' ) ; test( macro , '9' , -5678 , '-1' ) ; test( macro , '-9' , -5678 , '0' ) ; +test( macro , '9' , 94906265 , '0' ) ; +test( macro , '-9' , 94906265 , '-1' ) ; +test( macro , '9' , -94906265 , '-1' ) ; +test( macro , '-9' , -94906265 , '0' ) ; +test( macro , '9' , 94906266 , '0' ) ; +test( macro , '-9' , 94906266 , '-1' ) ; +test( macro , '9' , -94906266 , '-1' ) ; +test( macro , '-9' , -94906266 , '0' ) ; test( macro , '9' , 1073741824 , '0' ) ; test( macro , '-9' , 1073741824 , '-1' ) ; test( macro , '9' , -1073741824 , '-1' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '0' ) ; test( macro , '-11' , 5678 , '-1' ) ; test( macro , '11' , -5678 , '-1' ) ; test( macro , '-11' , -5678 , '0' ) ; +test( macro , '11' , 94906265 , '0' ) ; +test( macro , '-11' , 94906265 , '-1' ) ; +test( macro , '11' , -94906265 , '-1' ) ; +test( macro , '-11' , -94906265 , '0' ) ; +test( macro , '11' , 94906266 , '0' ) ; +test( macro , '-11' , 94906266 , '-1' ) ; +test( macro , '11' , -94906266 , '-1' ) ; +test( macro , '-11' , -94906266 , '0' ) ; test( macro , '11' , 1073741824 , '0' ) ; test( macro , '-11' , 1073741824 , '-1' ) ; test( macro , '11' , -1073741824 , '-1' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '0' ) ; test( macro , '-17' , 5678 , '-1' ) ; test( macro , '17' , -5678 , '-1' ) ; test( macro , '-17' , -5678 , '0' ) ; +test( macro , '17' , 94906265 , '0' ) ; +test( macro , '-17' , 94906265 , '-1' ) ; +test( macro , '17' , -94906265 , '-1' ) ; +test( macro , '-17' , -94906265 , '0' ) ; +test( macro , '17' , 94906266 , '0' ) ; +test( macro , '-17' , 94906266 , '-1' ) ; +test( macro , '17' , -94906266 , '-1' ) ; +test( macro , '-17' , -94906266 , '0' ) ; test( macro , '17' , 1073741824 , '0' ) ; test( macro , '-17' , 1073741824 , '-1' ) ; test( macro , '17' , -1073741824 , '-1' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '0' ) ; test( macro , '-22' , 5678 , '-1' ) ; test( macro , '22' , -5678 , '-1' ) ; test( macro , '-22' , -5678 , '0' ) ; +test( macro , '22' , 94906265 , '0' ) ; +test( macro , '-22' , 94906265 , '-1' ) ; +test( macro , '22' , -94906265 , '-1' ) ; +test( macro , '-22' , -94906265 , '0' ) ; +test( macro , '22' , 94906266 , '0' ) ; +test( macro , '-22' , 94906266 , '-1' ) ; +test( macro , '22' , -94906266 , '-1' ) ; +test( macro , '-22' , -94906266 , '0' ) ; test( macro , '22' , 1073741824 , '0' ) ; test( macro , '-22' , 1073741824 , '-1' ) ; test( macro , '22' , -1073741824 , '-1' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '0' ) ; test( macro , '-24' , 5678 , '-1' ) ; test( macro , '24' , -5678 , '-1' ) ; test( macro , '-24' , -5678 , '0' ) ; +test( macro , '24' , 94906265 , '0' ) ; +test( macro , '-24' , 94906265 , '-1' ) ; +test( macro , '24' , -94906265 , '-1' ) ; +test( macro , '-24' , -94906265 , '0' ) ; +test( macro , '24' , 94906266 , '0' ) ; +test( macro , '-24' , 94906266 , '-1' ) ; +test( macro , '24' , -94906266 , '-1' ) ; +test( macro , '-24' , -94906266 , '0' ) ; test( macro , '24' , 1073741824 , '0' ) ; test( macro , '-24' , 1073741824 , '-1' ) ; test( macro , '24' , -1073741824 , '-1' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '0' ) ; test( macro , '-27' , 5678 , '-1' ) ; test( macro , '27' , -5678 , '-1' ) ; test( macro , '-27' , -5678 , '0' ) ; +test( macro , '27' , 94906265 , '0' ) ; +test( macro , '-27' , 94906265 , '-1' ) ; +test( macro , '27' , -94906265 , '-1' ) ; +test( macro , '-27' , -94906265 , '0' ) ; +test( macro , '27' , 94906266 , '0' ) ; +test( macro , '-27' , 94906266 , '-1' ) ; +test( macro , '27' , -94906266 , '-1' ) ; +test( macro , '-27' , -94906266 , '0' ) ; test( macro , '27' , 1073741824 , '0' ) ; test( macro , '-27' , 1073741824 , '-1' ) ; test( macro , '27' , -1073741824 , '-1' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '0' ) ; test( macro , '-29' , 5678 , '-1' ) ; test( macro , '29' , -5678 , '-1' ) ; test( macro , '-29' , -5678 , '0' ) ; +test( macro , '29' , 94906265 , '0' ) ; +test( macro , '-29' , 94906265 , '-1' ) ; +test( macro , '29' , -94906265 , '-1' ) ; +test( macro , '-29' , -94906265 , '0' ) ; +test( macro , '29' , 94906266 , '0' ) ; +test( macro , '-29' , 94906266 , '-1' ) ; +test( macro , '29' , -94906266 , '-1' ) ; +test( macro , '-29' , -94906266 , '0' ) ; test( macro , '29' , 1073741824 , '0' ) ; test( macro , '-29' , 1073741824 , '-1' ) ; test( macro , '29' , -1073741824 , '-1' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '0' ) ; test( macro , '-1234' , 5678 , '-1' ) ; test( macro , '1234' , -5678 , '-1' ) ; test( macro , '-1234' , -5678 , '0' ) ; +test( macro , '1234' , 94906265 , '0' ) ; +test( macro , '-1234' , 94906265 , '-1' ) ; +test( macro , '1234' , -94906265 , '-1' ) ; +test( macro , '-1234' , -94906265 , '0' ) ; +test( macro , '1234' , 94906266 , '0' ) ; +test( macro , '-1234' , 94906266 , '-1' ) ; +test( macro , '1234' , -94906266 , '-1' ) ; +test( macro , '-1234' , -94906266 , '0' ) ; test( macro , '1234' , 1073741824 , '0' ) ; test( macro , '-1234' , 1073741824 , '-1' ) ; test( macro , '1234' , -1073741824 , '-1' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '1' ) ; test( macro , '-5678' , 5678 , '-1' ) ; test( macro , '5678' , -5678 , '-1' ) ; test( macro , '-5678' , -5678 , '1' ) ; +test( macro , '5678' , 94906265 , '0' ) ; +test( macro , '-5678' , 94906265 , '-1' ) ; +test( macro , '5678' , -94906265 , '-1' ) ; +test( macro , '-5678' , -94906265 , '0' ) ; +test( macro , '5678' , 94906266 , '0' ) ; +test( macro , '-5678' , 94906266 , '-1' ) ; +test( macro , '5678' , -94906266 , '-1' ) ; +test( macro , '-5678' , -94906266 , '0' ) ; test( macro , '5678' , 1073741824 , '0' ) ; test( macro , '-5678' , 1073741824 , '-1' ) ; test( macro , '5678' , -1073741824 , '-1' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '0' ) ; test( macro , '-5678' , 51676101935731 , '-1' ) ; test( macro , '5678' , -51676101935731 , '-1' ) ; test( macro , '-5678' , -51676101935731 , '0' ) ; +test( macro , '94906265' , 1 , '94906265' ) ; +test( macro , '-94906265' , 1 , '-94906265' ) ; +test( macro , '94906265' , -1 , '-94906265' ) ; +test( macro , '-94906265' , -1 , '94906265' ) ; +test( macro , '94906265' , 3 , '31635421' ) ; +test( macro , '-94906265' , 3 , '-31635422' ) ; +test( macro , '94906265' , -3 , '-31635422' ) ; +test( macro , '-94906265' , -3 , '31635421' ) ; +test( macro , '94906265' , 7 , '13558037' ) ; +test( macro , '-94906265' , 7 , '-13558038' ) ; +test( macro , '94906265' , -7 , '-13558038' ) ; +test( macro , '-94906265' , -7 , '13558037' ) ; +test( macro , '94906265' , 9 , '10545140' ) ; +test( macro , '-94906265' , 9 , '-10545141' ) ; +test( macro , '94906265' , -9 , '-10545141' ) ; +test( macro , '-94906265' , -9 , '10545140' ) ; +test( macro , '94906265' , 11 , '8627842' ) ; +test( macro , '-94906265' , 11 , '-8627843' ) ; +test( macro , '94906265' , -11 , '-8627843' ) ; +test( macro , '-94906265' , -11 , '8627842' ) ; +test( macro , '94906265' , 17 , '5582721' ) ; +test( macro , '-94906265' , 17 , '-5582722' ) ; +test( macro , '94906265' , -17 , '-5582722' ) ; +test( macro , '-94906265' , -17 , '5582721' ) ; +test( macro , '94906265' , 22 , '4313921' ) ; +test( macro , '-94906265' , 22 , '-4313922' ) ; +test( macro , '94906265' , -22 , '-4313922' ) ; +test( macro , '-94906265' , -22 , '4313921' ) ; +test( macro , '94906265' , 24 , '3954427' ) ; +test( macro , '-94906265' , 24 , '-3954428' ) ; +test( macro , '94906265' , -24 , '-3954428' ) ; +test( macro , '-94906265' , -24 , '3954427' ) ; +test( macro , '94906265' , 27 , '3515046' ) ; +test( macro , '-94906265' , 27 , '-3515047' ) ; +test( macro , '94906265' , -27 , '-3515047' ) ; +test( macro , '-94906265' , -27 , '3515046' ) ; +test( macro , '94906265' , 29 , '3272629' ) ; +test( macro , '-94906265' , 29 , '-3272630' ) ; +test( macro , '94906265' , -29 , '-3272630' ) ; +test( macro , '-94906265' , -29 , '3272629' ) ; +test( macro , '94906265' , 1234 , '76909' ) ; +test( macro , '-94906265' , 1234 , '-76910' ) ; +test( macro , '94906265' , -1234 , '-76910' ) ; +test( macro , '-94906265' , -1234 , '76909' ) ; +test( macro , '94906265' , 5678 , '16714' ) ; +test( macro , '-94906265' , 5678 , '-16715' ) ; +test( macro , '94906265' , -5678 , '-16715' ) ; +test( macro , '-94906265' , -5678 , '16714' ) ; +test( macro , '94906265' , 94906265 , '1' ) ; +test( macro , '-94906265' , 94906265 , '-1' ) ; +test( macro , '94906265' , -94906265 , '-1' ) ; +test( macro , '-94906265' , -94906265 , '1' ) ; +test( macro , '94906265' , 94906266 , '0' ) ; +test( macro , '-94906265' , 94906266 , '-1' ) ; +test( macro , '94906265' , -94906266 , '-1' ) ; +test( macro , '-94906265' , -94906266 , '0' ) ; +test( macro , '94906265' , 1073741824 , '0' ) ; +test( macro , '-94906265' , 1073741824 , '-1' ) ; +test( macro , '94906265' , -1073741824 , '-1' ) ; +test( macro , '-94906265' , -1073741824 , '0' ) ; +test( macro , '94906265' , 51676101935731 , '0' ) ; +test( macro , '-94906265' , 51676101935731 , '-1' ) ; +test( macro , '94906265' , -51676101935731 , '-1' ) ; +test( macro , '-94906265' , -51676101935731 , '0' ) ; +test( macro , '94906266' , 1 , '94906266' ) ; +test( macro , '-94906266' , 1 , '-94906266' ) ; +test( macro , '94906266' , -1 , '-94906266' ) ; +test( macro , '-94906266' , -1 , '94906266' ) ; +test( macro , '94906266' , 3 , '31635422' ) ; +test( macro , '-94906266' , 3 , '-31635422' ) ; +test( macro , '94906266' , -3 , '-31635422' ) ; +test( macro , '-94906266' , -3 , '31635422' ) ; +test( macro , '94906266' , 7 , '13558038' ) ; +test( macro , '-94906266' , 7 , '-13558038' ) ; +test( macro , '94906266' , -7 , '-13558038' ) ; +test( macro , '-94906266' , -7 , '13558038' ) ; +test( macro , '94906266' , 9 , '10545140' ) ; +test( macro , '-94906266' , 9 , '-10545141' ) ; +test( macro , '94906266' , -9 , '-10545141' ) ; +test( macro , '-94906266' , -9 , '10545140' ) ; +test( macro , '94906266' , 11 , '8627842' ) ; +test( macro , '-94906266' , 11 , '-8627843' ) ; +test( macro , '94906266' , -11 , '-8627843' ) ; +test( macro , '-94906266' , -11 , '8627842' ) ; +test( macro , '94906266' , 17 , '5582721' ) ; +test( macro , '-94906266' , 17 , '-5582722' ) ; +test( macro , '94906266' , -17 , '-5582722' ) ; +test( macro , '-94906266' , -17 , '5582721' ) ; +test( macro , '94906266' , 22 , '4313921' ) ; +test( macro , '-94906266' , 22 , '-4313922' ) ; +test( macro , '94906266' , -22 , '-4313922' ) ; +test( macro , '-94906266' , -22 , '4313921' ) ; +test( macro , '94906266' , 24 , '3954427' ) ; +test( macro , '-94906266' , 24 , '-3954428' ) ; +test( macro , '94906266' , -24 , '-3954428' ) ; +test( macro , '-94906266' , -24 , '3954427' ) ; +test( macro , '94906266' , 27 , '3515046' ) ; +test( macro , '-94906266' , 27 , '-3515047' ) ; +test( macro , '94906266' , -27 , '-3515047' ) ; +test( macro , '-94906266' , -27 , '3515046' ) ; +test( macro , '94906266' , 29 , '3272629' ) ; +test( macro , '-94906266' , 29 , '-3272630' ) ; +test( macro , '94906266' , -29 , '-3272630' ) ; +test( macro , '-94906266' , -29 , '3272629' ) ; +test( macro , '94906266' , 1234 , '76909' ) ; +test( macro , '-94906266' , 1234 , '-76910' ) ; +test( macro , '94906266' , -1234 , '-76910' ) ; +test( macro , '-94906266' , -1234 , '76909' ) ; +test( macro , '94906266' , 5678 , '16714' ) ; +test( macro , '-94906266' , 5678 , '-16715' ) ; +test( macro , '94906266' , -5678 , '-16715' ) ; +test( macro , '-94906266' , -5678 , '16714' ) ; +test( macro , '94906266' , 94906265 , '1' ) ; +test( macro , '-94906266' , 94906265 , '-2' ) ; +test( macro , '94906266' , -94906265 , '-2' ) ; +test( macro , '-94906266' , -94906265 , '1' ) ; +test( macro , '94906266' , 94906266 , '1' ) ; +test( macro , '-94906266' , 94906266 , '-1' ) ; +test( macro , '94906266' , -94906266 , '-1' ) ; +test( macro , '-94906266' , -94906266 , '1' ) ; +test( macro , '94906266' , 1073741824 , '0' ) ; +test( macro , '-94906266' , 1073741824 , '-1' ) ; +test( macro , '94906266' , -1073741824 , '-1' ) ; +test( macro , '-94906266' , -1073741824 , '0' ) ; +test( macro , '94906266' , 51676101935731 , '0' ) ; +test( macro , '-94906266' , 51676101935731 , '-1' ) ; +test( macro , '94906266' , -51676101935731 , '-1' ) ; +test( macro , '-94906266' , -51676101935731 , '0' ) ; test( macro , '1073741824' , 1 , '1073741824' ) ; test( macro , '-1073741824' , 1 , '-1073741824' ) ; test( macro , '1073741824' , -1 , '-1073741824' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '189105' ) ; test( macro , '-1073741824' , 5678 , '-189106' ) ; test( macro , '1073741824' , -5678 , '-189106' ) ; test( macro , '-1073741824' , -5678 , '189105' ) ; +test( macro , '1073741824' , 94906265 , '11' ) ; +test( macro , '-1073741824' , 94906265 , '-12' ) ; +test( macro , '1073741824' , -94906265 , '-12' ) ; +test( macro , '-1073741824' , -94906265 , '11' ) ; +test( macro , '1073741824' , 94906266 , '11' ) ; +test( macro , '-1073741824' , 94906266 , '-12' ) ; +test( macro , '1073741824' , -94906266 , '-12' ) ; +test( macro , '-1073741824' , -94906266 , '11' ) ; test( macro , '1073741824' , 1073741824 , '1' ) ; test( macro , '-1073741824' , 1073741824 , '-1' ) ; test( macro , '1073741824' , -1073741824 , '-1' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '9101109886' ) ; test( macro , '-51676101935731' , 5678 , '-9101109887' ) ; test( macro , '51676101935731' , -5678 , '-9101109887' ) ; test( macro , '-51676101935731' , -5678 , '9101109886' ) ; +test( macro , '51676101935731' , 94906265 , '544496' ) ; +test( macro , '-51676101935731' , 94906265 , '-544497' ) ; +test( macro , '51676101935731' , -94906265 , '-544497' ) ; +test( macro , '-51676101935731' , -94906265 , '544496' ) ; +test( macro , '51676101935731' , 94906266 , '544496' ) ; +test( macro , '-51676101935731' , 94906266 , '-544497' ) ; +test( macro , '51676101935731' , -94906266 , '-544497' ) ; +test( macro , '-51676101935731' , -94906266 , '544496' ) ; test( macro , '51676101935731' , 1073741824 , '48127' ) ; test( macro , '-51676101935731' , 1073741824 , '-48128' ) ; test( macro , '51676101935731' , -1073741824 , '-48128' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '126435010160593974774' ) ; test( macro , '-717897987691852588770249' , 5678 , '-126435010160593974775' ) ; test( macro , '717897987691852588770249' , -5678 , '-126435010160593974775' ) ; test( macro , '-717897987691852588770249' , -5678 , '126435010160593974774' ) ; +test( macro , '717897987691852588770249' , 94906265 , '7564284483135571' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-7564284483135572' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-7564284483135572' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '7564284483135571' ) ; +test( macro , '717897987691852588770249' , 94906266 , '7564284403432883' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-7564284403432884' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-7564284403432884' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '7564284403432883' ) ; test( macro , '717897987691852588770249' , 1073741824 , '668594602208447' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-668594602208448' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-668594602208448' ) ; diff --git a/test/src/integer/arithmetic/iadd.js b/test/src/integer/arithmetic/iadd.js index 5b876d3..14c6ee5 100644 --- a/test/src/integer/arithmetic/iadd.js +++ b/test/src/integer/arithmetic/iadd.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '5679' ) ; test( macro , '-1' , '5678' , '5677' ) ; test( macro , '1' , '-5678' , '-5677' ) ; test( macro , '-1' , '-5678' , '-5679' ) ; +test( macro , '1' , '94906265' , '94906266' ) ; +test( macro , '-1' , '94906265' , '94906264' ) ; +test( macro , '1' , '-94906265' , '-94906264' ) ; +test( macro , '-1' , '-94906265' , '-94906266' ) ; +test( macro , '1' , '94906266' , '94906267' ) ; +test( macro , '-1' , '94906266' , '94906265' ) ; +test( macro , '1' , '-94906266' , '-94906265' ) ; +test( macro , '-1' , '-94906266' , '-94906267' ) ; test( macro , '1' , '1073741824' , '1073741825' ) ; test( macro , '-1' , '1073741824' , '1073741823' ) ; test( macro , '1' , '-1073741824' , '-1073741823' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '5681' ) ; test( macro , '-3' , '5678' , '5675' ) ; test( macro , '3' , '-5678' , '-5675' ) ; test( macro , '-3' , '-5678' , '-5681' ) ; +test( macro , '3' , '94906265' , '94906268' ) ; +test( macro , '-3' , '94906265' , '94906262' ) ; +test( macro , '3' , '-94906265' , '-94906262' ) ; +test( macro , '-3' , '-94906265' , '-94906268' ) ; +test( macro , '3' , '94906266' , '94906269' ) ; +test( macro , '-3' , '94906266' , '94906263' ) ; +test( macro , '3' , '-94906266' , '-94906263' ) ; +test( macro , '-3' , '-94906266' , '-94906269' ) ; test( macro , '3' , '1073741824' , '1073741827' ) ; test( macro , '-3' , '1073741824' , '1073741821' ) ; test( macro , '3' , '-1073741824' , '-1073741821' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '5685' ) ; test( macro , '-7' , '5678' , '5671' ) ; test( macro , '7' , '-5678' , '-5671' ) ; test( macro , '-7' , '-5678' , '-5685' ) ; +test( macro , '7' , '94906265' , '94906272' ) ; +test( macro , '-7' , '94906265' , '94906258' ) ; +test( macro , '7' , '-94906265' , '-94906258' ) ; +test( macro , '-7' , '-94906265' , '-94906272' ) ; +test( macro , '7' , '94906266' , '94906273' ) ; +test( macro , '-7' , '94906266' , '94906259' ) ; +test( macro , '7' , '-94906266' , '-94906259' ) ; +test( macro , '-7' , '-94906266' , '-94906273' ) ; test( macro , '7' , '1073741824' , '1073741831' ) ; test( macro , '-7' , '1073741824' , '1073741817' ) ; test( macro , '7' , '-1073741824' , '-1073741817' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '5687' ) ; test( macro , '-9' , '5678' , '5669' ) ; test( macro , '9' , '-5678' , '-5669' ) ; test( macro , '-9' , '-5678' , '-5687' ) ; +test( macro , '9' , '94906265' , '94906274' ) ; +test( macro , '-9' , '94906265' , '94906256' ) ; +test( macro , '9' , '-94906265' , '-94906256' ) ; +test( macro , '-9' , '-94906265' , '-94906274' ) ; +test( macro , '9' , '94906266' , '94906275' ) ; +test( macro , '-9' , '94906266' , '94906257' ) ; +test( macro , '9' , '-94906266' , '-94906257' ) ; +test( macro , '-9' , '-94906266' , '-94906275' ) ; test( macro , '9' , '1073741824' , '1073741833' ) ; test( macro , '-9' , '1073741824' , '1073741815' ) ; test( macro , '9' , '-1073741824' , '-1073741815' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '5689' ) ; test( macro , '-11' , '5678' , '5667' ) ; test( macro , '11' , '-5678' , '-5667' ) ; test( macro , '-11' , '-5678' , '-5689' ) ; +test( macro , '11' , '94906265' , '94906276' ) ; +test( macro , '-11' , '94906265' , '94906254' ) ; +test( macro , '11' , '-94906265' , '-94906254' ) ; +test( macro , '-11' , '-94906265' , '-94906276' ) ; +test( macro , '11' , '94906266' , '94906277' ) ; +test( macro , '-11' , '94906266' , '94906255' ) ; +test( macro , '11' , '-94906266' , '-94906255' ) ; +test( macro , '-11' , '-94906266' , '-94906277' ) ; test( macro , '11' , '1073741824' , '1073741835' ) ; test( macro , '-11' , '1073741824' , '1073741813' ) ; test( macro , '11' , '-1073741824' , '-1073741813' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '5695' ) ; test( macro , '-17' , '5678' , '5661' ) ; test( macro , '17' , '-5678' , '-5661' ) ; test( macro , '-17' , '-5678' , '-5695' ) ; +test( macro , '17' , '94906265' , '94906282' ) ; +test( macro , '-17' , '94906265' , '94906248' ) ; +test( macro , '17' , '-94906265' , '-94906248' ) ; +test( macro , '-17' , '-94906265' , '-94906282' ) ; +test( macro , '17' , '94906266' , '94906283' ) ; +test( macro , '-17' , '94906266' , '94906249' ) ; +test( macro , '17' , '-94906266' , '-94906249' ) ; +test( macro , '-17' , '-94906266' , '-94906283' ) ; test( macro , '17' , '1073741824' , '1073741841' ) ; test( macro , '-17' , '1073741824' , '1073741807' ) ; test( macro , '17' , '-1073741824' , '-1073741807' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '5700' ) ; test( macro , '-22' , '5678' , '5656' ) ; test( macro , '22' , '-5678' , '-5656' ) ; test( macro , '-22' , '-5678' , '-5700' ) ; +test( macro , '22' , '94906265' , '94906287' ) ; +test( macro , '-22' , '94906265' , '94906243' ) ; +test( macro , '22' , '-94906265' , '-94906243' ) ; +test( macro , '-22' , '-94906265' , '-94906287' ) ; +test( macro , '22' , '94906266' , '94906288' ) ; +test( macro , '-22' , '94906266' , '94906244' ) ; +test( macro , '22' , '-94906266' , '-94906244' ) ; +test( macro , '-22' , '-94906266' , '-94906288' ) ; test( macro , '22' , '1073741824' , '1073741846' ) ; test( macro , '-22' , '1073741824' , '1073741802' ) ; test( macro , '22' , '-1073741824' , '-1073741802' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '5702' ) ; test( macro , '-24' , '5678' , '5654' ) ; test( macro , '24' , '-5678' , '-5654' ) ; test( macro , '-24' , '-5678' , '-5702' ) ; +test( macro , '24' , '94906265' , '94906289' ) ; +test( macro , '-24' , '94906265' , '94906241' ) ; +test( macro , '24' , '-94906265' , '-94906241' ) ; +test( macro , '-24' , '-94906265' , '-94906289' ) ; +test( macro , '24' , '94906266' , '94906290' ) ; +test( macro , '-24' , '94906266' , '94906242' ) ; +test( macro , '24' , '-94906266' , '-94906242' ) ; +test( macro , '-24' , '-94906266' , '-94906290' ) ; test( macro , '24' , '1073741824' , '1073741848' ) ; test( macro , '-24' , '1073741824' , '1073741800' ) ; test( macro , '24' , '-1073741824' , '-1073741800' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '5705' ) ; test( macro , '-27' , '5678' , '5651' ) ; test( macro , '27' , '-5678' , '-5651' ) ; test( macro , '-27' , '-5678' , '-5705' ) ; +test( macro , '27' , '94906265' , '94906292' ) ; +test( macro , '-27' , '94906265' , '94906238' ) ; +test( macro , '27' , '-94906265' , '-94906238' ) ; +test( macro , '-27' , '-94906265' , '-94906292' ) ; +test( macro , '27' , '94906266' , '94906293' ) ; +test( macro , '-27' , '94906266' , '94906239' ) ; +test( macro , '27' , '-94906266' , '-94906239' ) ; +test( macro , '-27' , '-94906266' , '-94906293' ) ; test( macro , '27' , '1073741824' , '1073741851' ) ; test( macro , '-27' , '1073741824' , '1073741797' ) ; test( macro , '27' , '-1073741824' , '-1073741797' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '5707' ) ; test( macro , '-29' , '5678' , '5649' ) ; test( macro , '29' , '-5678' , '-5649' ) ; test( macro , '-29' , '-5678' , '-5707' ) ; +test( macro , '29' , '94906265' , '94906294' ) ; +test( macro , '-29' , '94906265' , '94906236' ) ; +test( macro , '29' , '-94906265' , '-94906236' ) ; +test( macro , '-29' , '-94906265' , '-94906294' ) ; +test( macro , '29' , '94906266' , '94906295' ) ; +test( macro , '-29' , '94906266' , '94906237' ) ; +test( macro , '29' , '-94906266' , '-94906237' ) ; +test( macro , '-29' , '-94906266' , '-94906295' ) ; test( macro , '29' , '1073741824' , '1073741853' ) ; test( macro , '-29' , '1073741824' , '1073741795' ) ; test( macro , '29' , '-1073741824' , '-1073741795' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '6912' ) ; test( macro , '-1234' , '5678' , '4444' ) ; test( macro , '1234' , '-5678' , '-4444' ) ; test( macro , '-1234' , '-5678' , '-6912' ) ; +test( macro , '1234' , '94906265' , '94907499' ) ; +test( macro , '-1234' , '94906265' , '94905031' ) ; +test( macro , '1234' , '-94906265' , '-94905031' ) ; +test( macro , '-1234' , '-94906265' , '-94907499' ) ; +test( macro , '1234' , '94906266' , '94907500' ) ; +test( macro , '-1234' , '94906266' , '94905032' ) ; +test( macro , '1234' , '-94906266' , '-94905032' ) ; +test( macro , '-1234' , '-94906266' , '-94907500' ) ; test( macro , '1234' , '1073741824' , '1073743058' ) ; test( macro , '-1234' , '1073741824' , '1073740590' ) ; test( macro , '1234' , '-1073741824' , '-1073740590' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '11356' ) ; test( macro , '-5678' , '5678' , '0' ) ; test( macro , '5678' , '-5678' , '0' ) ; test( macro , '-5678' , '-5678' , '-11356' ) ; +test( macro , '5678' , '94906265' , '94911943' ) ; +test( macro , '-5678' , '94906265' , '94900587' ) ; +test( macro , '5678' , '-94906265' , '-94900587' ) ; +test( macro , '-5678' , '-94906265' , '-94911943' ) ; +test( macro , '5678' , '94906266' , '94911944' ) ; +test( macro , '-5678' , '94906266' , '94900588' ) ; +test( macro , '5678' , '-94906266' , '-94900588' ) ; +test( macro , '-5678' , '-94906266' , '-94911944' ) ; test( macro , '5678' , '1073741824' , '1073747502' ) ; test( macro , '-5678' , '1073741824' , '1073736146' ) ; test( macro , '5678' , '-1073741824' , '-1073736146' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '717897987691852588775927' ) test( macro , '-5678' , '717897987691852588770249' , '717897987691852588764571' ) ; test( macro , '5678' , '-717897987691852588770249' , '-717897987691852588764571' ) ; test( macro , '-5678' , '-717897987691852588770249' , '-717897987691852588775927' ) ; +test( macro , '94906265' , '1' , '94906266' ) ; +test( macro , '-94906265' , '1' , '-94906264' ) ; +test( macro , '94906265' , '-1' , '94906264' ) ; +test( macro , '-94906265' , '-1' , '-94906266' ) ; +test( macro , '94906265' , '3' , '94906268' ) ; +test( macro , '-94906265' , '3' , '-94906262' ) ; +test( macro , '94906265' , '-3' , '94906262' ) ; +test( macro , '-94906265' , '-3' , '-94906268' ) ; +test( macro , '94906265' , '7' , '94906272' ) ; +test( macro , '-94906265' , '7' , '-94906258' ) ; +test( macro , '94906265' , '-7' , '94906258' ) ; +test( macro , '-94906265' , '-7' , '-94906272' ) ; +test( macro , '94906265' , '9' , '94906274' ) ; +test( macro , '-94906265' , '9' , '-94906256' ) ; +test( macro , '94906265' , '-9' , '94906256' ) ; +test( macro , '-94906265' , '-9' , '-94906274' ) ; +test( macro , '94906265' , '11' , '94906276' ) ; +test( macro , '-94906265' , '11' , '-94906254' ) ; +test( macro , '94906265' , '-11' , '94906254' ) ; +test( macro , '-94906265' , '-11' , '-94906276' ) ; +test( macro , '94906265' , '17' , '94906282' ) ; +test( macro , '-94906265' , '17' , '-94906248' ) ; +test( macro , '94906265' , '-17' , '94906248' ) ; +test( macro , '-94906265' , '-17' , '-94906282' ) ; +test( macro , '94906265' , '22' , '94906287' ) ; +test( macro , '-94906265' , '22' , '-94906243' ) ; +test( macro , '94906265' , '-22' , '94906243' ) ; +test( macro , '-94906265' , '-22' , '-94906287' ) ; +test( macro , '94906265' , '24' , '94906289' ) ; +test( macro , '-94906265' , '24' , '-94906241' ) ; +test( macro , '94906265' , '-24' , '94906241' ) ; +test( macro , '-94906265' , '-24' , '-94906289' ) ; +test( macro , '94906265' , '27' , '94906292' ) ; +test( macro , '-94906265' , '27' , '-94906238' ) ; +test( macro , '94906265' , '-27' , '94906238' ) ; +test( macro , '-94906265' , '-27' , '-94906292' ) ; +test( macro , '94906265' , '29' , '94906294' ) ; +test( macro , '-94906265' , '29' , '-94906236' ) ; +test( macro , '94906265' , '-29' , '94906236' ) ; +test( macro , '-94906265' , '-29' , '-94906294' ) ; +test( macro , '94906265' , '1234' , '94907499' ) ; +test( macro , '-94906265' , '1234' , '-94905031' ) ; +test( macro , '94906265' , '-1234' , '94905031' ) ; +test( macro , '-94906265' , '-1234' , '-94907499' ) ; +test( macro , '94906265' , '5678' , '94911943' ) ; +test( macro , '-94906265' , '5678' , '-94900587' ) ; +test( macro , '94906265' , '-5678' , '94900587' ) ; +test( macro , '-94906265' , '-5678' , '-94911943' ) ; +test( macro , '94906265' , '94906265' , '189812530' ) ; +test( macro , '-94906265' , '94906265' , '0' ) ; +test( macro , '94906265' , '-94906265' , '0' ) ; +test( macro , '-94906265' , '-94906265' , '-189812530' ) ; +test( macro , '94906265' , '94906266' , '189812531' ) ; +test( macro , '-94906265' , '94906266' , '1' ) ; +test( macro , '94906265' , '-94906266' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '-189812531' ) ; +test( macro , '94906265' , '1073741824' , '1168648089' ) ; +test( macro , '-94906265' , '1073741824' , '978835559' ) ; +test( macro , '94906265' , '-1073741824' , '-978835559' ) ; +test( macro , '-94906265' , '-1073741824' , '-1168648089' ) ; +test( macro , '94906265' , '51676101935731' , '51676196841996' ) ; +test( macro , '-94906265' , '51676101935731' , '51676007029466' ) ; +test( macro , '94906265' , '-51676101935731' , '-51676007029466' ) ; +test( macro , '-94906265' , '-51676101935731' , '-51676196841996' ) ; +test( macro , '94906265' , '717897987691852588770249' , '717897987691852683676514' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '717897987691852493863984' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '-717897987691852683676514' ) ; +test( macro , '94906266' , '1' , '94906267' ) ; +test( macro , '-94906266' , '1' , '-94906265' ) ; +test( macro , '94906266' , '-1' , '94906265' ) ; +test( macro , '-94906266' , '-1' , '-94906267' ) ; +test( macro , '94906266' , '3' , '94906269' ) ; +test( macro , '-94906266' , '3' , '-94906263' ) ; +test( macro , '94906266' , '-3' , '94906263' ) ; +test( macro , '-94906266' , '-3' , '-94906269' ) ; +test( macro , '94906266' , '7' , '94906273' ) ; +test( macro , '-94906266' , '7' , '-94906259' ) ; +test( macro , '94906266' , '-7' , '94906259' ) ; +test( macro , '-94906266' , '-7' , '-94906273' ) ; +test( macro , '94906266' , '9' , '94906275' ) ; +test( macro , '-94906266' , '9' , '-94906257' ) ; +test( macro , '94906266' , '-9' , '94906257' ) ; +test( macro , '-94906266' , '-9' , '-94906275' ) ; +test( macro , '94906266' , '11' , '94906277' ) ; +test( macro , '-94906266' , '11' , '-94906255' ) ; +test( macro , '94906266' , '-11' , '94906255' ) ; +test( macro , '-94906266' , '-11' , '-94906277' ) ; +test( macro , '94906266' , '17' , '94906283' ) ; +test( macro , '-94906266' , '17' , '-94906249' ) ; +test( macro , '94906266' , '-17' , '94906249' ) ; +test( macro , '-94906266' , '-17' , '-94906283' ) ; +test( macro , '94906266' , '22' , '94906288' ) ; +test( macro , '-94906266' , '22' , '-94906244' ) ; +test( macro , '94906266' , '-22' , '94906244' ) ; +test( macro , '-94906266' , '-22' , '-94906288' ) ; +test( macro , '94906266' , '24' , '94906290' ) ; +test( macro , '-94906266' , '24' , '-94906242' ) ; +test( macro , '94906266' , '-24' , '94906242' ) ; +test( macro , '-94906266' , '-24' , '-94906290' ) ; +test( macro , '94906266' , '27' , '94906293' ) ; +test( macro , '-94906266' , '27' , '-94906239' ) ; +test( macro , '94906266' , '-27' , '94906239' ) ; +test( macro , '-94906266' , '-27' , '-94906293' ) ; +test( macro , '94906266' , '29' , '94906295' ) ; +test( macro , '-94906266' , '29' , '-94906237' ) ; +test( macro , '94906266' , '-29' , '94906237' ) ; +test( macro , '-94906266' , '-29' , '-94906295' ) ; +test( macro , '94906266' , '1234' , '94907500' ) ; +test( macro , '-94906266' , '1234' , '-94905032' ) ; +test( macro , '94906266' , '-1234' , '94905032' ) ; +test( macro , '-94906266' , '-1234' , '-94907500' ) ; +test( macro , '94906266' , '5678' , '94911944' ) ; +test( macro , '-94906266' , '5678' , '-94900588' ) ; +test( macro , '94906266' , '-5678' , '94900588' ) ; +test( macro , '-94906266' , '-5678' , '-94911944' ) ; +test( macro , '94906266' , '94906265' , '189812531' ) ; +test( macro , '-94906266' , '94906265' , '-1' ) ; +test( macro , '94906266' , '-94906265' , '1' ) ; +test( macro , '-94906266' , '-94906265' , '-189812531' ) ; +test( macro , '94906266' , '94906266' , '189812532' ) ; +test( macro , '-94906266' , '94906266' , '0' ) ; +test( macro , '94906266' , '-94906266' , '0' ) ; +test( macro , '-94906266' , '-94906266' , '-189812532' ) ; +test( macro , '94906266' , '1073741824' , '1168648090' ) ; +test( macro , '-94906266' , '1073741824' , '978835558' ) ; +test( macro , '94906266' , '-1073741824' , '-978835558' ) ; +test( macro , '-94906266' , '-1073741824' , '-1168648090' ) ; +test( macro , '94906266' , '51676101935731' , '51676196841997' ) ; +test( macro , '-94906266' , '51676101935731' , '51676007029465' ) ; +test( macro , '94906266' , '-51676101935731' , '-51676007029465' ) ; +test( macro , '-94906266' , '-51676101935731' , '-51676196841997' ) ; +test( macro , '94906266' , '717897987691852588770249' , '717897987691852683676515' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '717897987691852493863983' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '-717897987691852683676515' ) ; test( macro , '1073741824' , '1' , '1073741825' ) ; test( macro , '-1073741824' , '1' , '-1073741823' ) ; test( macro , '1073741824' , '-1' , '1073741823' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '1073747502' ) ; test( macro , '-1073741824' , '5678' , '-1073736146' ) ; test( macro , '1073741824' , '-5678' , '1073736146' ) ; test( macro , '-1073741824' , '-5678' , '-1073747502' ) ; +test( macro , '1073741824' , '94906265' , '1168648089' ) ; +test( macro , '-1073741824' , '94906265' , '-978835559' ) ; +test( macro , '1073741824' , '-94906265' , '978835559' ) ; +test( macro , '-1073741824' , '-94906265' , '-1168648089' ) ; +test( macro , '1073741824' , '94906266' , '1168648090' ) ; +test( macro , '-1073741824' , '94906266' , '-978835558' ) ; +test( macro , '1073741824' , '-94906266' , '978835558' ) ; +test( macro , '-1073741824' , '-94906266' , '-1168648090' ) ; test( macro , '1073741824' , '1073741824' , '2147483648' ) ; test( macro , '-1073741824' , '1073741824' , '0' ) ; test( macro , '1073741824' , '-1073741824' , '0' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '51676101941409' ) ; test( macro , '-51676101935731' , '5678' , '-51676101930053' ) ; test( macro , '51676101935731' , '-5678' , '51676101930053' ) ; test( macro , '-51676101935731' , '-5678' , '-51676101941409' ) ; +test( macro , '51676101935731' , '94906265' , '51676196841996' ) ; +test( macro , '-51676101935731' , '94906265' , '-51676007029466' ) ; +test( macro , '51676101935731' , '-94906265' , '51676007029466' ) ; +test( macro , '-51676101935731' , '-94906265' , '-51676196841996' ) ; +test( macro , '51676101935731' , '94906266' , '51676196841997' ) ; +test( macro , '-51676101935731' , '94906266' , '-51676007029465' ) ; +test( macro , '51676101935731' , '-94906266' , '51676007029465' ) ; +test( macro , '-51676101935731' , '-94906266' , '-51676196841997' ) ; test( macro , '51676101935731' , '1073741824' , '51677175677555' ) ; test( macro , '-51676101935731' , '1073741824' , '-51675028193907' ) ; test( macro , '51676101935731' , '-1073741824' , '51675028193907' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '717897987691852588775927' ) test( macro , '-717897987691852588770249' , '5678' , '-717897987691852588764571' ) ; test( macro , '717897987691852588770249' , '-5678' , '717897987691852588764571' ) ; test( macro , '-717897987691852588770249' , '-5678' , '-717897987691852588775927' ) ; +test( macro , '717897987691852588770249' , '94906265' , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , '94906266' , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-717897987691852493863983' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '-717897987691852683676515' ) ; test( macro , '717897987691852588770249' , '1073741824' , '717897987691853662512073' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-717897987691851515028425' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '717897987691851515028425' ) ; diff --git a/test/src/integer/arithmetic/iaddn.js b/test/src/integer/arithmetic/iaddn.js index 3551f91..107faf4 100644 --- a/test/src/integer/arithmetic/iaddn.js +++ b/test/src/integer/arithmetic/iaddn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '5679' ) ; test( macro , '-1' , 5678 , '5677' ) ; test( macro , '1' , -5678 , '-5677' ) ; test( macro , '-1' , -5678 , '-5679' ) ; +test( macro , '1' , 94906265 , '94906266' ) ; +test( macro , '-1' , 94906265 , '94906264' ) ; +test( macro , '1' , -94906265 , '-94906264' ) ; +test( macro , '-1' , -94906265 , '-94906266' ) ; +test( macro , '1' , 94906266 , '94906267' ) ; +test( macro , '-1' , 94906266 , '94906265' ) ; +test( macro , '1' , -94906266 , '-94906265' ) ; +test( macro , '-1' , -94906266 , '-94906267' ) ; test( macro , '1' , 1073741824 , '1073741825' ) ; test( macro , '-1' , 1073741824 , '1073741823' ) ; test( macro , '1' , -1073741824 , '-1073741823' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '5681' ) ; test( macro , '-3' , 5678 , '5675' ) ; test( macro , '3' , -5678 , '-5675' ) ; test( macro , '-3' , -5678 , '-5681' ) ; +test( macro , '3' , 94906265 , '94906268' ) ; +test( macro , '-3' , 94906265 , '94906262' ) ; +test( macro , '3' , -94906265 , '-94906262' ) ; +test( macro , '-3' , -94906265 , '-94906268' ) ; +test( macro , '3' , 94906266 , '94906269' ) ; +test( macro , '-3' , 94906266 , '94906263' ) ; +test( macro , '3' , -94906266 , '-94906263' ) ; +test( macro , '-3' , -94906266 , '-94906269' ) ; test( macro , '3' , 1073741824 , '1073741827' ) ; test( macro , '-3' , 1073741824 , '1073741821' ) ; test( macro , '3' , -1073741824 , '-1073741821' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '5685' ) ; test( macro , '-7' , 5678 , '5671' ) ; test( macro , '7' , -5678 , '-5671' ) ; test( macro , '-7' , -5678 , '-5685' ) ; +test( macro , '7' , 94906265 , '94906272' ) ; +test( macro , '-7' , 94906265 , '94906258' ) ; +test( macro , '7' , -94906265 , '-94906258' ) ; +test( macro , '-7' , -94906265 , '-94906272' ) ; +test( macro , '7' , 94906266 , '94906273' ) ; +test( macro , '-7' , 94906266 , '94906259' ) ; +test( macro , '7' , -94906266 , '-94906259' ) ; +test( macro , '-7' , -94906266 , '-94906273' ) ; test( macro , '7' , 1073741824 , '1073741831' ) ; test( macro , '-7' , 1073741824 , '1073741817' ) ; test( macro , '7' , -1073741824 , '-1073741817' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '5687' ) ; test( macro , '-9' , 5678 , '5669' ) ; test( macro , '9' , -5678 , '-5669' ) ; test( macro , '-9' , -5678 , '-5687' ) ; +test( macro , '9' , 94906265 , '94906274' ) ; +test( macro , '-9' , 94906265 , '94906256' ) ; +test( macro , '9' , -94906265 , '-94906256' ) ; +test( macro , '-9' , -94906265 , '-94906274' ) ; +test( macro , '9' , 94906266 , '94906275' ) ; +test( macro , '-9' , 94906266 , '94906257' ) ; +test( macro , '9' , -94906266 , '-94906257' ) ; +test( macro , '-9' , -94906266 , '-94906275' ) ; test( macro , '9' , 1073741824 , '1073741833' ) ; test( macro , '-9' , 1073741824 , '1073741815' ) ; test( macro , '9' , -1073741824 , '-1073741815' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '5689' ) ; test( macro , '-11' , 5678 , '5667' ) ; test( macro , '11' , -5678 , '-5667' ) ; test( macro , '-11' , -5678 , '-5689' ) ; +test( macro , '11' , 94906265 , '94906276' ) ; +test( macro , '-11' , 94906265 , '94906254' ) ; +test( macro , '11' , -94906265 , '-94906254' ) ; +test( macro , '-11' , -94906265 , '-94906276' ) ; +test( macro , '11' , 94906266 , '94906277' ) ; +test( macro , '-11' , 94906266 , '94906255' ) ; +test( macro , '11' , -94906266 , '-94906255' ) ; +test( macro , '-11' , -94906266 , '-94906277' ) ; test( macro , '11' , 1073741824 , '1073741835' ) ; test( macro , '-11' , 1073741824 , '1073741813' ) ; test( macro , '11' , -1073741824 , '-1073741813' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '5695' ) ; test( macro , '-17' , 5678 , '5661' ) ; test( macro , '17' , -5678 , '-5661' ) ; test( macro , '-17' , -5678 , '-5695' ) ; +test( macro , '17' , 94906265 , '94906282' ) ; +test( macro , '-17' , 94906265 , '94906248' ) ; +test( macro , '17' , -94906265 , '-94906248' ) ; +test( macro , '-17' , -94906265 , '-94906282' ) ; +test( macro , '17' , 94906266 , '94906283' ) ; +test( macro , '-17' , 94906266 , '94906249' ) ; +test( macro , '17' , -94906266 , '-94906249' ) ; +test( macro , '-17' , -94906266 , '-94906283' ) ; test( macro , '17' , 1073741824 , '1073741841' ) ; test( macro , '-17' , 1073741824 , '1073741807' ) ; test( macro , '17' , -1073741824 , '-1073741807' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '5700' ) ; test( macro , '-22' , 5678 , '5656' ) ; test( macro , '22' , -5678 , '-5656' ) ; test( macro , '-22' , -5678 , '-5700' ) ; +test( macro , '22' , 94906265 , '94906287' ) ; +test( macro , '-22' , 94906265 , '94906243' ) ; +test( macro , '22' , -94906265 , '-94906243' ) ; +test( macro , '-22' , -94906265 , '-94906287' ) ; +test( macro , '22' , 94906266 , '94906288' ) ; +test( macro , '-22' , 94906266 , '94906244' ) ; +test( macro , '22' , -94906266 , '-94906244' ) ; +test( macro , '-22' , -94906266 , '-94906288' ) ; test( macro , '22' , 1073741824 , '1073741846' ) ; test( macro , '-22' , 1073741824 , '1073741802' ) ; test( macro , '22' , -1073741824 , '-1073741802' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '5702' ) ; test( macro , '-24' , 5678 , '5654' ) ; test( macro , '24' , -5678 , '-5654' ) ; test( macro , '-24' , -5678 , '-5702' ) ; +test( macro , '24' , 94906265 , '94906289' ) ; +test( macro , '-24' , 94906265 , '94906241' ) ; +test( macro , '24' , -94906265 , '-94906241' ) ; +test( macro , '-24' , -94906265 , '-94906289' ) ; +test( macro , '24' , 94906266 , '94906290' ) ; +test( macro , '-24' , 94906266 , '94906242' ) ; +test( macro , '24' , -94906266 , '-94906242' ) ; +test( macro , '-24' , -94906266 , '-94906290' ) ; test( macro , '24' , 1073741824 , '1073741848' ) ; test( macro , '-24' , 1073741824 , '1073741800' ) ; test( macro , '24' , -1073741824 , '-1073741800' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '5705' ) ; test( macro , '-27' , 5678 , '5651' ) ; test( macro , '27' , -5678 , '-5651' ) ; test( macro , '-27' , -5678 , '-5705' ) ; +test( macro , '27' , 94906265 , '94906292' ) ; +test( macro , '-27' , 94906265 , '94906238' ) ; +test( macro , '27' , -94906265 , '-94906238' ) ; +test( macro , '-27' , -94906265 , '-94906292' ) ; +test( macro , '27' , 94906266 , '94906293' ) ; +test( macro , '-27' , 94906266 , '94906239' ) ; +test( macro , '27' , -94906266 , '-94906239' ) ; +test( macro , '-27' , -94906266 , '-94906293' ) ; test( macro , '27' , 1073741824 , '1073741851' ) ; test( macro , '-27' , 1073741824 , '1073741797' ) ; test( macro , '27' , -1073741824 , '-1073741797' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '5707' ) ; test( macro , '-29' , 5678 , '5649' ) ; test( macro , '29' , -5678 , '-5649' ) ; test( macro , '-29' , -5678 , '-5707' ) ; +test( macro , '29' , 94906265 , '94906294' ) ; +test( macro , '-29' , 94906265 , '94906236' ) ; +test( macro , '29' , -94906265 , '-94906236' ) ; +test( macro , '-29' , -94906265 , '-94906294' ) ; +test( macro , '29' , 94906266 , '94906295' ) ; +test( macro , '-29' , 94906266 , '94906237' ) ; +test( macro , '29' , -94906266 , '-94906237' ) ; +test( macro , '-29' , -94906266 , '-94906295' ) ; test( macro , '29' , 1073741824 , '1073741853' ) ; test( macro , '-29' , 1073741824 , '1073741795' ) ; test( macro , '29' , -1073741824 , '-1073741795' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '6912' ) ; test( macro , '-1234' , 5678 , '4444' ) ; test( macro , '1234' , -5678 , '-4444' ) ; test( macro , '-1234' , -5678 , '-6912' ) ; +test( macro , '1234' , 94906265 , '94907499' ) ; +test( macro , '-1234' , 94906265 , '94905031' ) ; +test( macro , '1234' , -94906265 , '-94905031' ) ; +test( macro , '-1234' , -94906265 , '-94907499' ) ; +test( macro , '1234' , 94906266 , '94907500' ) ; +test( macro , '-1234' , 94906266 , '94905032' ) ; +test( macro , '1234' , -94906266 , '-94905032' ) ; +test( macro , '-1234' , -94906266 , '-94907500' ) ; test( macro , '1234' , 1073741824 , '1073743058' ) ; test( macro , '-1234' , 1073741824 , '1073740590' ) ; test( macro , '1234' , -1073741824 , '-1073740590' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '11356' ) ; test( macro , '-5678' , 5678 , '0' ) ; test( macro , '5678' , -5678 , '0' ) ; test( macro , '-5678' , -5678 , '-11356' ) ; +test( macro , '5678' , 94906265 , '94911943' ) ; +test( macro , '-5678' , 94906265 , '94900587' ) ; +test( macro , '5678' , -94906265 , '-94900587' ) ; +test( macro , '-5678' , -94906265 , '-94911943' ) ; +test( macro , '5678' , 94906266 , '94911944' ) ; +test( macro , '-5678' , 94906266 , '94900588' ) ; +test( macro , '5678' , -94906266 , '-94900588' ) ; +test( macro , '-5678' , -94906266 , '-94911944' ) ; test( macro , '5678' , 1073741824 , '1073747502' ) ; test( macro , '-5678' , 1073741824 , '1073736146' ) ; test( macro , '5678' , -1073741824 , '-1073736146' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '51676101941409' ) ; test( macro , '-5678' , 51676101935731 , '51676101930053' ) ; test( macro , '5678' , -51676101935731 , '-51676101930053' ) ; test( macro , '-5678' , -51676101935731 , '-51676101941409' ) ; +test( macro , '94906265' , 1 , '94906266' ) ; +test( macro , '-94906265' , 1 , '-94906264' ) ; +test( macro , '94906265' , -1 , '94906264' ) ; +test( macro , '-94906265' , -1 , '-94906266' ) ; +test( macro , '94906265' , 3 , '94906268' ) ; +test( macro , '-94906265' , 3 , '-94906262' ) ; +test( macro , '94906265' , -3 , '94906262' ) ; +test( macro , '-94906265' , -3 , '-94906268' ) ; +test( macro , '94906265' , 7 , '94906272' ) ; +test( macro , '-94906265' , 7 , '-94906258' ) ; +test( macro , '94906265' , -7 , '94906258' ) ; +test( macro , '-94906265' , -7 , '-94906272' ) ; +test( macro , '94906265' , 9 , '94906274' ) ; +test( macro , '-94906265' , 9 , '-94906256' ) ; +test( macro , '94906265' , -9 , '94906256' ) ; +test( macro , '-94906265' , -9 , '-94906274' ) ; +test( macro , '94906265' , 11 , '94906276' ) ; +test( macro , '-94906265' , 11 , '-94906254' ) ; +test( macro , '94906265' , -11 , '94906254' ) ; +test( macro , '-94906265' , -11 , '-94906276' ) ; +test( macro , '94906265' , 17 , '94906282' ) ; +test( macro , '-94906265' , 17 , '-94906248' ) ; +test( macro , '94906265' , -17 , '94906248' ) ; +test( macro , '-94906265' , -17 , '-94906282' ) ; +test( macro , '94906265' , 22 , '94906287' ) ; +test( macro , '-94906265' , 22 , '-94906243' ) ; +test( macro , '94906265' , -22 , '94906243' ) ; +test( macro , '-94906265' , -22 , '-94906287' ) ; +test( macro , '94906265' , 24 , '94906289' ) ; +test( macro , '-94906265' , 24 , '-94906241' ) ; +test( macro , '94906265' , -24 , '94906241' ) ; +test( macro , '-94906265' , -24 , '-94906289' ) ; +test( macro , '94906265' , 27 , '94906292' ) ; +test( macro , '-94906265' , 27 , '-94906238' ) ; +test( macro , '94906265' , -27 , '94906238' ) ; +test( macro , '-94906265' , -27 , '-94906292' ) ; +test( macro , '94906265' , 29 , '94906294' ) ; +test( macro , '-94906265' , 29 , '-94906236' ) ; +test( macro , '94906265' , -29 , '94906236' ) ; +test( macro , '-94906265' , -29 , '-94906294' ) ; +test( macro , '94906265' , 1234 , '94907499' ) ; +test( macro , '-94906265' , 1234 , '-94905031' ) ; +test( macro , '94906265' , -1234 , '94905031' ) ; +test( macro , '-94906265' , -1234 , '-94907499' ) ; +test( macro , '94906265' , 5678 , '94911943' ) ; +test( macro , '-94906265' , 5678 , '-94900587' ) ; +test( macro , '94906265' , -5678 , '94900587' ) ; +test( macro , '-94906265' , -5678 , '-94911943' ) ; +test( macro , '94906265' , 94906265 , '189812530' ) ; +test( macro , '-94906265' , 94906265 , '0' ) ; +test( macro , '94906265' , -94906265 , '0' ) ; +test( macro , '-94906265' , -94906265 , '-189812530' ) ; +test( macro , '94906265' , 94906266 , '189812531' ) ; +test( macro , '-94906265' , 94906266 , '1' ) ; +test( macro , '94906265' , -94906266 , '-1' ) ; +test( macro , '-94906265' , -94906266 , '-189812531' ) ; +test( macro , '94906265' , 1073741824 , '1168648089' ) ; +test( macro , '-94906265' , 1073741824 , '978835559' ) ; +test( macro , '94906265' , -1073741824 , '-978835559' ) ; +test( macro , '-94906265' , -1073741824 , '-1168648089' ) ; +test( macro , '94906265' , 51676101935731 , '51676196841996' ) ; +test( macro , '-94906265' , 51676101935731 , '51676007029466' ) ; +test( macro , '94906265' , -51676101935731 , '-51676007029466' ) ; +test( macro , '-94906265' , -51676101935731 , '-51676196841996' ) ; +test( macro , '94906266' , 1 , '94906267' ) ; +test( macro , '-94906266' , 1 , '-94906265' ) ; +test( macro , '94906266' , -1 , '94906265' ) ; +test( macro , '-94906266' , -1 , '-94906267' ) ; +test( macro , '94906266' , 3 , '94906269' ) ; +test( macro , '-94906266' , 3 , '-94906263' ) ; +test( macro , '94906266' , -3 , '94906263' ) ; +test( macro , '-94906266' , -3 , '-94906269' ) ; +test( macro , '94906266' , 7 , '94906273' ) ; +test( macro , '-94906266' , 7 , '-94906259' ) ; +test( macro , '94906266' , -7 , '94906259' ) ; +test( macro , '-94906266' , -7 , '-94906273' ) ; +test( macro , '94906266' , 9 , '94906275' ) ; +test( macro , '-94906266' , 9 , '-94906257' ) ; +test( macro , '94906266' , -9 , '94906257' ) ; +test( macro , '-94906266' , -9 , '-94906275' ) ; +test( macro , '94906266' , 11 , '94906277' ) ; +test( macro , '-94906266' , 11 , '-94906255' ) ; +test( macro , '94906266' , -11 , '94906255' ) ; +test( macro , '-94906266' , -11 , '-94906277' ) ; +test( macro , '94906266' , 17 , '94906283' ) ; +test( macro , '-94906266' , 17 , '-94906249' ) ; +test( macro , '94906266' , -17 , '94906249' ) ; +test( macro , '-94906266' , -17 , '-94906283' ) ; +test( macro , '94906266' , 22 , '94906288' ) ; +test( macro , '-94906266' , 22 , '-94906244' ) ; +test( macro , '94906266' , -22 , '94906244' ) ; +test( macro , '-94906266' , -22 , '-94906288' ) ; +test( macro , '94906266' , 24 , '94906290' ) ; +test( macro , '-94906266' , 24 , '-94906242' ) ; +test( macro , '94906266' , -24 , '94906242' ) ; +test( macro , '-94906266' , -24 , '-94906290' ) ; +test( macro , '94906266' , 27 , '94906293' ) ; +test( macro , '-94906266' , 27 , '-94906239' ) ; +test( macro , '94906266' , -27 , '94906239' ) ; +test( macro , '-94906266' , -27 , '-94906293' ) ; +test( macro , '94906266' , 29 , '94906295' ) ; +test( macro , '-94906266' , 29 , '-94906237' ) ; +test( macro , '94906266' , -29 , '94906237' ) ; +test( macro , '-94906266' , -29 , '-94906295' ) ; +test( macro , '94906266' , 1234 , '94907500' ) ; +test( macro , '-94906266' , 1234 , '-94905032' ) ; +test( macro , '94906266' , -1234 , '94905032' ) ; +test( macro , '-94906266' , -1234 , '-94907500' ) ; +test( macro , '94906266' , 5678 , '94911944' ) ; +test( macro , '-94906266' , 5678 , '-94900588' ) ; +test( macro , '94906266' , -5678 , '94900588' ) ; +test( macro , '-94906266' , -5678 , '-94911944' ) ; +test( macro , '94906266' , 94906265 , '189812531' ) ; +test( macro , '-94906266' , 94906265 , '-1' ) ; +test( macro , '94906266' , -94906265 , '1' ) ; +test( macro , '-94906266' , -94906265 , '-189812531' ) ; +test( macro , '94906266' , 94906266 , '189812532' ) ; +test( macro , '-94906266' , 94906266 , '0' ) ; +test( macro , '94906266' , -94906266 , '0' ) ; +test( macro , '-94906266' , -94906266 , '-189812532' ) ; +test( macro , '94906266' , 1073741824 , '1168648090' ) ; +test( macro , '-94906266' , 1073741824 , '978835558' ) ; +test( macro , '94906266' , -1073741824 , '-978835558' ) ; +test( macro , '-94906266' , -1073741824 , '-1168648090' ) ; +test( macro , '94906266' , 51676101935731 , '51676196841997' ) ; +test( macro , '-94906266' , 51676101935731 , '51676007029465' ) ; +test( macro , '94906266' , -51676101935731 , '-51676007029465' ) ; +test( macro , '-94906266' , -51676101935731 , '-51676196841997' ) ; test( macro , '1073741824' , 1 , '1073741825' ) ; test( macro , '-1073741824' , 1 , '-1073741823' ) ; test( macro , '1073741824' , -1 , '1073741823' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '1073747502' ) ; test( macro , '-1073741824' , 5678 , '-1073736146' ) ; test( macro , '1073741824' , -5678 , '1073736146' ) ; test( macro , '-1073741824' , -5678 , '-1073747502' ) ; +test( macro , '1073741824' , 94906265 , '1168648089' ) ; +test( macro , '-1073741824' , 94906265 , '-978835559' ) ; +test( macro , '1073741824' , -94906265 , '978835559' ) ; +test( macro , '-1073741824' , -94906265 , '-1168648089' ) ; +test( macro , '1073741824' , 94906266 , '1168648090' ) ; +test( macro , '-1073741824' , 94906266 , '-978835558' ) ; +test( macro , '1073741824' , -94906266 , '978835558' ) ; +test( macro , '-1073741824' , -94906266 , '-1168648090' ) ; test( macro , '1073741824' , 1073741824 , '2147483648' ) ; test( macro , '-1073741824' , 1073741824 , '0' ) ; test( macro , '1073741824' , -1073741824 , '0' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '51676101941409' ) ; test( macro , '-51676101935731' , 5678 , '-51676101930053' ) ; test( macro , '51676101935731' , -5678 , '51676101930053' ) ; test( macro , '-51676101935731' , -5678 , '-51676101941409' ) ; +test( macro , '51676101935731' , 94906265 , '51676196841996' ) ; +test( macro , '-51676101935731' , 94906265 , '-51676007029466' ) ; +test( macro , '51676101935731' , -94906265 , '51676007029466' ) ; +test( macro , '-51676101935731' , -94906265 , '-51676196841996' ) ; +test( macro , '51676101935731' , 94906266 , '51676196841997' ) ; +test( macro , '-51676101935731' , 94906266 , '-51676007029465' ) ; +test( macro , '51676101935731' , -94906266 , '51676007029465' ) ; +test( macro , '-51676101935731' , -94906266 , '-51676196841997' ) ; test( macro , '51676101935731' , 1073741824 , '51677175677555' ) ; test( macro , '-51676101935731' , 1073741824 , '-51675028193907' ) ; test( macro , '51676101935731' , -1073741824 , '51675028193907' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '717897987691852588775927' ) ; test( macro , '-717897987691852588770249' , 5678 , '-717897987691852588764571' ) ; test( macro , '717897987691852588770249' , -5678 , '717897987691852588764571' ) ; test( macro , '-717897987691852588770249' , -5678 , '-717897987691852588775927' ) ; +test( macro , '717897987691852588770249' , 94906265 , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , -94906265 , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , 94906266 , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-717897987691852493863983' ) ; +test( macro , '717897987691852588770249' , -94906266 , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '-717897987691852683676515' ) ; test( macro , '717897987691852588770249' , 1073741824 , '717897987691853662512073' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-717897987691851515028425' ) ; test( macro , '717897987691852588770249' , -1073741824 , '717897987691851515028425' ) ; diff --git a/test/src/integer/arithmetic/idiv.js b/test/src/integer/arithmetic/idiv.js index 8707cd7..8d48dd1 100644 --- a/test/src/integer/arithmetic/idiv.js +++ b/test/src/integer/arithmetic/idiv.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '0' ) ; test( macro , '-1' , '5678' , '-1' ) ; test( macro , '1' , '-5678' , '-1' ) ; test( macro , '-1' , '-5678' , '0' ) ; +test( macro , '1' , '94906265' , '0' ) ; +test( macro , '-1' , '94906265' , '-1' ) ; +test( macro , '1' , '-94906265' , '-1' ) ; +test( macro , '-1' , '-94906265' , '0' ) ; +test( macro , '1' , '94906266' , '0' ) ; +test( macro , '-1' , '94906266' , '-1' ) ; +test( macro , '1' , '-94906266' , '-1' ) ; +test( macro , '-1' , '-94906266' , '0' ) ; test( macro , '1' , '1073741824' , '0' ) ; test( macro , '-1' , '1073741824' , '-1' ) ; test( macro , '1' , '-1073741824' , '-1' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '0' ) ; test( macro , '-3' , '5678' , '-1' ) ; test( macro , '3' , '-5678' , '-1' ) ; test( macro , '-3' , '-5678' , '0' ) ; +test( macro , '3' , '94906265' , '0' ) ; +test( macro , '-3' , '94906265' , '-1' ) ; +test( macro , '3' , '-94906265' , '-1' ) ; +test( macro , '-3' , '-94906265' , '0' ) ; +test( macro , '3' , '94906266' , '0' ) ; +test( macro , '-3' , '94906266' , '-1' ) ; +test( macro , '3' , '-94906266' , '-1' ) ; +test( macro , '-3' , '-94906266' , '0' ) ; test( macro , '3' , '1073741824' , '0' ) ; test( macro , '-3' , '1073741824' , '-1' ) ; test( macro , '3' , '-1073741824' , '-1' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '0' ) ; test( macro , '-7' , '5678' , '-1' ) ; test( macro , '7' , '-5678' , '-1' ) ; test( macro , '-7' , '-5678' , '0' ) ; +test( macro , '7' , '94906265' , '0' ) ; +test( macro , '-7' , '94906265' , '-1' ) ; +test( macro , '7' , '-94906265' , '-1' ) ; +test( macro , '-7' , '-94906265' , '0' ) ; +test( macro , '7' , '94906266' , '0' ) ; +test( macro , '-7' , '94906266' , '-1' ) ; +test( macro , '7' , '-94906266' , '-1' ) ; +test( macro , '-7' , '-94906266' , '0' ) ; test( macro , '7' , '1073741824' , '0' ) ; test( macro , '-7' , '1073741824' , '-1' ) ; test( macro , '7' , '-1073741824' , '-1' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '0' ) ; test( macro , '-9' , '5678' , '-1' ) ; test( macro , '9' , '-5678' , '-1' ) ; test( macro , '-9' , '-5678' , '0' ) ; +test( macro , '9' , '94906265' , '0' ) ; +test( macro , '-9' , '94906265' , '-1' ) ; +test( macro , '9' , '-94906265' , '-1' ) ; +test( macro , '-9' , '-94906265' , '0' ) ; +test( macro , '9' , '94906266' , '0' ) ; +test( macro , '-9' , '94906266' , '-1' ) ; +test( macro , '9' , '-94906266' , '-1' ) ; +test( macro , '-9' , '-94906266' , '0' ) ; test( macro , '9' , '1073741824' , '0' ) ; test( macro , '-9' , '1073741824' , '-1' ) ; test( macro , '9' , '-1073741824' , '-1' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '0' ) ; test( macro , '-11' , '5678' , '-1' ) ; test( macro , '11' , '-5678' , '-1' ) ; test( macro , '-11' , '-5678' , '0' ) ; +test( macro , '11' , '94906265' , '0' ) ; +test( macro , '-11' , '94906265' , '-1' ) ; +test( macro , '11' , '-94906265' , '-1' ) ; +test( macro , '-11' , '-94906265' , '0' ) ; +test( macro , '11' , '94906266' , '0' ) ; +test( macro , '-11' , '94906266' , '-1' ) ; +test( macro , '11' , '-94906266' , '-1' ) ; +test( macro , '-11' , '-94906266' , '0' ) ; test( macro , '11' , '1073741824' , '0' ) ; test( macro , '-11' , '1073741824' , '-1' ) ; test( macro , '11' , '-1073741824' , '-1' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '0' ) ; test( macro , '-17' , '5678' , '-1' ) ; test( macro , '17' , '-5678' , '-1' ) ; test( macro , '-17' , '-5678' , '0' ) ; +test( macro , '17' , '94906265' , '0' ) ; +test( macro , '-17' , '94906265' , '-1' ) ; +test( macro , '17' , '-94906265' , '-1' ) ; +test( macro , '-17' , '-94906265' , '0' ) ; +test( macro , '17' , '94906266' , '0' ) ; +test( macro , '-17' , '94906266' , '-1' ) ; +test( macro , '17' , '-94906266' , '-1' ) ; +test( macro , '-17' , '-94906266' , '0' ) ; test( macro , '17' , '1073741824' , '0' ) ; test( macro , '-17' , '1073741824' , '-1' ) ; test( macro , '17' , '-1073741824' , '-1' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '0' ) ; test( macro , '-22' , '5678' , '-1' ) ; test( macro , '22' , '-5678' , '-1' ) ; test( macro , '-22' , '-5678' , '0' ) ; +test( macro , '22' , '94906265' , '0' ) ; +test( macro , '-22' , '94906265' , '-1' ) ; +test( macro , '22' , '-94906265' , '-1' ) ; +test( macro , '-22' , '-94906265' , '0' ) ; +test( macro , '22' , '94906266' , '0' ) ; +test( macro , '-22' , '94906266' , '-1' ) ; +test( macro , '22' , '-94906266' , '-1' ) ; +test( macro , '-22' , '-94906266' , '0' ) ; test( macro , '22' , '1073741824' , '0' ) ; test( macro , '-22' , '1073741824' , '-1' ) ; test( macro , '22' , '-1073741824' , '-1' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '0' ) ; test( macro , '-24' , '5678' , '-1' ) ; test( macro , '24' , '-5678' , '-1' ) ; test( macro , '-24' , '-5678' , '0' ) ; +test( macro , '24' , '94906265' , '0' ) ; +test( macro , '-24' , '94906265' , '-1' ) ; +test( macro , '24' , '-94906265' , '-1' ) ; +test( macro , '-24' , '-94906265' , '0' ) ; +test( macro , '24' , '94906266' , '0' ) ; +test( macro , '-24' , '94906266' , '-1' ) ; +test( macro , '24' , '-94906266' , '-1' ) ; +test( macro , '-24' , '-94906266' , '0' ) ; test( macro , '24' , '1073741824' , '0' ) ; test( macro , '-24' , '1073741824' , '-1' ) ; test( macro , '24' , '-1073741824' , '-1' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '0' ) ; test( macro , '-27' , '5678' , '-1' ) ; test( macro , '27' , '-5678' , '-1' ) ; test( macro , '-27' , '-5678' , '0' ) ; +test( macro , '27' , '94906265' , '0' ) ; +test( macro , '-27' , '94906265' , '-1' ) ; +test( macro , '27' , '-94906265' , '-1' ) ; +test( macro , '-27' , '-94906265' , '0' ) ; +test( macro , '27' , '94906266' , '0' ) ; +test( macro , '-27' , '94906266' , '-1' ) ; +test( macro , '27' , '-94906266' , '-1' ) ; +test( macro , '-27' , '-94906266' , '0' ) ; test( macro , '27' , '1073741824' , '0' ) ; test( macro , '-27' , '1073741824' , '-1' ) ; test( macro , '27' , '-1073741824' , '-1' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '0' ) ; test( macro , '-29' , '5678' , '-1' ) ; test( macro , '29' , '-5678' , '-1' ) ; test( macro , '-29' , '-5678' , '0' ) ; +test( macro , '29' , '94906265' , '0' ) ; +test( macro , '-29' , '94906265' , '-1' ) ; +test( macro , '29' , '-94906265' , '-1' ) ; +test( macro , '-29' , '-94906265' , '0' ) ; +test( macro , '29' , '94906266' , '0' ) ; +test( macro , '-29' , '94906266' , '-1' ) ; +test( macro , '29' , '-94906266' , '-1' ) ; +test( macro , '-29' , '-94906266' , '0' ) ; test( macro , '29' , '1073741824' , '0' ) ; test( macro , '-29' , '1073741824' , '-1' ) ; test( macro , '29' , '-1073741824' , '-1' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '0' ) ; test( macro , '-1234' , '5678' , '-1' ) ; test( macro , '1234' , '-5678' , '-1' ) ; test( macro , '-1234' , '-5678' , '0' ) ; +test( macro , '1234' , '94906265' , '0' ) ; +test( macro , '-1234' , '94906265' , '-1' ) ; +test( macro , '1234' , '-94906265' , '-1' ) ; +test( macro , '-1234' , '-94906265' , '0' ) ; +test( macro , '1234' , '94906266' , '0' ) ; +test( macro , '-1234' , '94906266' , '-1' ) ; +test( macro , '1234' , '-94906266' , '-1' ) ; +test( macro , '-1234' , '-94906266' , '0' ) ; test( macro , '1234' , '1073741824' , '0' ) ; test( macro , '-1234' , '1073741824' , '-1' ) ; test( macro , '1234' , '-1073741824' , '-1' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '1' ) ; test( macro , '-5678' , '5678' , '-1' ) ; test( macro , '5678' , '-5678' , '-1' ) ; test( macro , '-5678' , '-5678' , '1' ) ; +test( macro , '5678' , '94906265' , '0' ) ; +test( macro , '-5678' , '94906265' , '-1' ) ; +test( macro , '5678' , '-94906265' , '-1' ) ; +test( macro , '-5678' , '-94906265' , '0' ) ; +test( macro , '5678' , '94906266' , '0' ) ; +test( macro , '-5678' , '94906266' , '-1' ) ; +test( macro , '5678' , '-94906266' , '-1' ) ; +test( macro , '-5678' , '-94906266' , '0' ) ; test( macro , '5678' , '1073741824' , '0' ) ; test( macro , '-5678' , '1073741824' , '-1' ) ; test( macro , '5678' , '-1073741824' , '-1' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '0' ) ; test( macro , '-5678' , '717897987691852588770249' , '-1' ) ; test( macro , '5678' , '-717897987691852588770249' , '-1' ) ; test( macro , '-5678' , '-717897987691852588770249' , '0' ) ; +test( macro , '94906265' , '1' , '94906265' ) ; +test( macro , '-94906265' , '1' , '-94906265' ) ; +test( macro , '94906265' , '-1' , '-94906265' ) ; +test( macro , '-94906265' , '-1' , '94906265' ) ; +test( macro , '94906265' , '3' , '31635421' ) ; +test( macro , '-94906265' , '3' , '-31635422' ) ; +test( macro , '94906265' , '-3' , '-31635422' ) ; +test( macro , '-94906265' , '-3' , '31635421' ) ; +test( macro , '94906265' , '7' , '13558037' ) ; +test( macro , '-94906265' , '7' , '-13558038' ) ; +test( macro , '94906265' , '-7' , '-13558038' ) ; +test( macro , '-94906265' , '-7' , '13558037' ) ; +test( macro , '94906265' , '9' , '10545140' ) ; +test( macro , '-94906265' , '9' , '-10545141' ) ; +test( macro , '94906265' , '-9' , '-10545141' ) ; +test( macro , '-94906265' , '-9' , '10545140' ) ; +test( macro , '94906265' , '11' , '8627842' ) ; +test( macro , '-94906265' , '11' , '-8627843' ) ; +test( macro , '94906265' , '-11' , '-8627843' ) ; +test( macro , '-94906265' , '-11' , '8627842' ) ; +test( macro , '94906265' , '17' , '5582721' ) ; +test( macro , '-94906265' , '17' , '-5582722' ) ; +test( macro , '94906265' , '-17' , '-5582722' ) ; +test( macro , '-94906265' , '-17' , '5582721' ) ; +test( macro , '94906265' , '22' , '4313921' ) ; +test( macro , '-94906265' , '22' , '-4313922' ) ; +test( macro , '94906265' , '-22' , '-4313922' ) ; +test( macro , '-94906265' , '-22' , '4313921' ) ; +test( macro , '94906265' , '24' , '3954427' ) ; +test( macro , '-94906265' , '24' , '-3954428' ) ; +test( macro , '94906265' , '-24' , '-3954428' ) ; +test( macro , '-94906265' , '-24' , '3954427' ) ; +test( macro , '94906265' , '27' , '3515046' ) ; +test( macro , '-94906265' , '27' , '-3515047' ) ; +test( macro , '94906265' , '-27' , '-3515047' ) ; +test( macro , '-94906265' , '-27' , '3515046' ) ; +test( macro , '94906265' , '29' , '3272629' ) ; +test( macro , '-94906265' , '29' , '-3272630' ) ; +test( macro , '94906265' , '-29' , '-3272630' ) ; +test( macro , '-94906265' , '-29' , '3272629' ) ; +test( macro , '94906265' , '1234' , '76909' ) ; +test( macro , '-94906265' , '1234' , '-76910' ) ; +test( macro , '94906265' , '-1234' , '-76910' ) ; +test( macro , '-94906265' , '-1234' , '76909' ) ; +test( macro , '94906265' , '5678' , '16714' ) ; +test( macro , '-94906265' , '5678' , '-16715' ) ; +test( macro , '94906265' , '-5678' , '-16715' ) ; +test( macro , '-94906265' , '-5678' , '16714' ) ; +test( macro , '94906265' , '94906265' , '1' ) ; +test( macro , '-94906265' , '94906265' , '-1' ) ; +test( macro , '94906265' , '-94906265' , '-1' ) ; +test( macro , '-94906265' , '-94906265' , '1' ) ; +test( macro , '94906265' , '94906266' , '0' ) ; +test( macro , '-94906265' , '94906266' , '-1' ) ; +test( macro , '94906265' , '-94906266' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '0' ) ; +test( macro , '94906265' , '1073741824' , '0' ) ; +test( macro , '-94906265' , '1073741824' , '-1' ) ; +test( macro , '94906265' , '-1073741824' , '-1' ) ; +test( macro , '-94906265' , '-1073741824' , '0' ) ; +test( macro , '94906265' , '51676101935731' , '0' ) ; +test( macro , '-94906265' , '51676101935731' , '-1' ) ; +test( macro , '94906265' , '-51676101935731' , '-1' ) ; +test( macro , '-94906265' , '-51676101935731' , '0' ) ; +test( macro , '94906265' , '717897987691852588770249' , '0' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-1' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-1' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '0' ) ; +test( macro , '94906266' , '1' , '94906266' ) ; +test( macro , '-94906266' , '1' , '-94906266' ) ; +test( macro , '94906266' , '-1' , '-94906266' ) ; +test( macro , '-94906266' , '-1' , '94906266' ) ; +test( macro , '94906266' , '3' , '31635422' ) ; +test( macro , '-94906266' , '3' , '-31635422' ) ; +test( macro , '94906266' , '-3' , '-31635422' ) ; +test( macro , '-94906266' , '-3' , '31635422' ) ; +test( macro , '94906266' , '7' , '13558038' ) ; +test( macro , '-94906266' , '7' , '-13558038' ) ; +test( macro , '94906266' , '-7' , '-13558038' ) ; +test( macro , '-94906266' , '-7' , '13558038' ) ; +test( macro , '94906266' , '9' , '10545140' ) ; +test( macro , '-94906266' , '9' , '-10545141' ) ; +test( macro , '94906266' , '-9' , '-10545141' ) ; +test( macro , '-94906266' , '-9' , '10545140' ) ; +test( macro , '94906266' , '11' , '8627842' ) ; +test( macro , '-94906266' , '11' , '-8627843' ) ; +test( macro , '94906266' , '-11' , '-8627843' ) ; +test( macro , '-94906266' , '-11' , '8627842' ) ; +test( macro , '94906266' , '17' , '5582721' ) ; +test( macro , '-94906266' , '17' , '-5582722' ) ; +test( macro , '94906266' , '-17' , '-5582722' ) ; +test( macro , '-94906266' , '-17' , '5582721' ) ; +test( macro , '94906266' , '22' , '4313921' ) ; +test( macro , '-94906266' , '22' , '-4313922' ) ; +test( macro , '94906266' , '-22' , '-4313922' ) ; +test( macro , '-94906266' , '-22' , '4313921' ) ; +test( macro , '94906266' , '24' , '3954427' ) ; +test( macro , '-94906266' , '24' , '-3954428' ) ; +test( macro , '94906266' , '-24' , '-3954428' ) ; +test( macro , '-94906266' , '-24' , '3954427' ) ; +test( macro , '94906266' , '27' , '3515046' ) ; +test( macro , '-94906266' , '27' , '-3515047' ) ; +test( macro , '94906266' , '-27' , '-3515047' ) ; +test( macro , '-94906266' , '-27' , '3515046' ) ; +test( macro , '94906266' , '29' , '3272629' ) ; +test( macro , '-94906266' , '29' , '-3272630' ) ; +test( macro , '94906266' , '-29' , '-3272630' ) ; +test( macro , '-94906266' , '-29' , '3272629' ) ; +test( macro , '94906266' , '1234' , '76909' ) ; +test( macro , '-94906266' , '1234' , '-76910' ) ; +test( macro , '94906266' , '-1234' , '-76910' ) ; +test( macro , '-94906266' , '-1234' , '76909' ) ; +test( macro , '94906266' , '5678' , '16714' ) ; +test( macro , '-94906266' , '5678' , '-16715' ) ; +test( macro , '94906266' , '-5678' , '-16715' ) ; +test( macro , '-94906266' , '-5678' , '16714' ) ; +test( macro , '94906266' , '94906265' , '1' ) ; +test( macro , '-94906266' , '94906265' , '-2' ) ; +test( macro , '94906266' , '-94906265' , '-2' ) ; +test( macro , '-94906266' , '-94906265' , '1' ) ; +test( macro , '94906266' , '94906266' , '1' ) ; +test( macro , '-94906266' , '94906266' , '-1' ) ; +test( macro , '94906266' , '-94906266' , '-1' ) ; +test( macro , '-94906266' , '-94906266' , '1' ) ; +test( macro , '94906266' , '1073741824' , '0' ) ; +test( macro , '-94906266' , '1073741824' , '-1' ) ; +test( macro , '94906266' , '-1073741824' , '-1' ) ; +test( macro , '-94906266' , '-1073741824' , '0' ) ; +test( macro , '94906266' , '51676101935731' , '0' ) ; +test( macro , '-94906266' , '51676101935731' , '-1' ) ; +test( macro , '94906266' , '-51676101935731' , '-1' ) ; +test( macro , '-94906266' , '-51676101935731' , '0' ) ; +test( macro , '94906266' , '717897987691852588770249' , '0' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-1' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-1' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '0' ) ; test( macro , '1073741824' , '1' , '1073741824' ) ; test( macro , '-1073741824' , '1' , '-1073741824' ) ; test( macro , '1073741824' , '-1' , '-1073741824' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '189105' ) ; test( macro , '-1073741824' , '5678' , '-189106' ) ; test( macro , '1073741824' , '-5678' , '-189106' ) ; test( macro , '-1073741824' , '-5678' , '189105' ) ; +test( macro , '1073741824' , '94906265' , '11' ) ; +test( macro , '-1073741824' , '94906265' , '-12' ) ; +test( macro , '1073741824' , '-94906265' , '-12' ) ; +test( macro , '-1073741824' , '-94906265' , '11' ) ; +test( macro , '1073741824' , '94906266' , '11' ) ; +test( macro , '-1073741824' , '94906266' , '-12' ) ; +test( macro , '1073741824' , '-94906266' , '-12' ) ; +test( macro , '-1073741824' , '-94906266' , '11' ) ; test( macro , '1073741824' , '1073741824' , '1' ) ; test( macro , '-1073741824' , '1073741824' , '-1' ) ; test( macro , '1073741824' , '-1073741824' , '-1' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '9101109886' ) ; test( macro , '-51676101935731' , '5678' , '-9101109887' ) ; test( macro , '51676101935731' , '-5678' , '-9101109887' ) ; test( macro , '-51676101935731' , '-5678' , '9101109886' ) ; +test( macro , '51676101935731' , '94906265' , '544496' ) ; +test( macro , '-51676101935731' , '94906265' , '-544497' ) ; +test( macro , '51676101935731' , '-94906265' , '-544497' ) ; +test( macro , '-51676101935731' , '-94906265' , '544496' ) ; +test( macro , '51676101935731' , '94906266' , '544496' ) ; +test( macro , '-51676101935731' , '94906266' , '-544497' ) ; +test( macro , '51676101935731' , '-94906266' , '-544497' ) ; +test( macro , '-51676101935731' , '-94906266' , '544496' ) ; test( macro , '51676101935731' , '1073741824' , '48127' ) ; test( macro , '-51676101935731' , '1073741824' , '-48128' ) ; test( macro , '51676101935731' , '-1073741824' , '-48128' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '126435010160593974774' ) ; test( macro , '-717897987691852588770249' , '5678' , '-126435010160593974775' ) ; test( macro , '717897987691852588770249' , '-5678' , '-126435010160593974775' ) ; test( macro , '-717897987691852588770249' , '-5678' , '126435010160593974774' ) ; +test( macro , '717897987691852588770249' , '94906265' , '7564284483135571' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-7564284483135572' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-7564284483135572' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '7564284483135571' ) ; +test( macro , '717897987691852588770249' , '94906266' , '7564284403432883' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-7564284403432884' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-7564284403432884' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '7564284403432883' ) ; test( macro , '717897987691852588770249' , '1073741824' , '668594602208447' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-668594602208448' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-668594602208448' ) ; diff --git a/test/src/integer/arithmetic/idivmod.js b/test/src/integer/arithmetic/idivmod.js index 2755bab..f6ad5a2 100644 --- a/test/src/integer/arithmetic/idivmod.js +++ b/test/src/integer/arithmetic/idivmod.js @@ -61,6 +61,14 @@ test( macro , '1' , '5678' , '0' , '1' ) ; test( macro , '-1' , '5678' , '-1' , '5677' ) ; test( macro , '1' , '-5678' , '-1' , '-5677' ) ; test( macro , '-1' , '-5678' , '0' , '-1' ) ; +test( macro , '1' , '94906265' , '0' , '1' ) ; +test( macro , '-1' , '94906265' , '-1' , '94906264' ) ; +test( macro , '1' , '-94906265' , '-1' , '-94906264' ) ; +test( macro , '-1' , '-94906265' , '0' , '-1' ) ; +test( macro , '1' , '94906266' , '0' , '1' ) ; +test( macro , '-1' , '94906266' , '-1' , '94906265' ) ; +test( macro , '1' , '-94906266' , '-1' , '-94906265' ) ; +test( macro , '-1' , '-94906266' , '0' , '-1' ) ; test( macro , '1' , '1073741824' , '0' , '1' ) ; test( macro , '-1' , '1073741824' , '-1' , '1073741823' ) ; test( macro , '1' , '-1073741824' , '-1' , '-1073741823' ) ; @@ -121,6 +129,14 @@ test( macro , '3' , '5678' , '0' , '3' ) ; test( macro , '-3' , '5678' , '-1' , '5675' ) ; test( macro , '3' , '-5678' , '-1' , '-5675' ) ; test( macro , '-3' , '-5678' , '0' , '-3' ) ; +test( macro , '3' , '94906265' , '0' , '3' ) ; +test( macro , '-3' , '94906265' , '-1' , '94906262' ) ; +test( macro , '3' , '-94906265' , '-1' , '-94906262' ) ; +test( macro , '-3' , '-94906265' , '0' , '-3' ) ; +test( macro , '3' , '94906266' , '0' , '3' ) ; +test( macro , '-3' , '94906266' , '-1' , '94906263' ) ; +test( macro , '3' , '-94906266' , '-1' , '-94906263' ) ; +test( macro , '-3' , '-94906266' , '0' , '-3' ) ; test( macro , '3' , '1073741824' , '0' , '3' ) ; test( macro , '-3' , '1073741824' , '-1' , '1073741821' ) ; test( macro , '3' , '-1073741824' , '-1' , '-1073741821' ) ; @@ -181,6 +197,14 @@ test( macro , '7' , '5678' , '0' , '7' ) ; test( macro , '-7' , '5678' , '-1' , '5671' ) ; test( macro , '7' , '-5678' , '-1' , '-5671' ) ; test( macro , '-7' , '-5678' , '0' , '-7' ) ; +test( macro , '7' , '94906265' , '0' , '7' ) ; +test( macro , '-7' , '94906265' , '-1' , '94906258' ) ; +test( macro , '7' , '-94906265' , '-1' , '-94906258' ) ; +test( macro , '-7' , '-94906265' , '0' , '-7' ) ; +test( macro , '7' , '94906266' , '0' , '7' ) ; +test( macro , '-7' , '94906266' , '-1' , '94906259' ) ; +test( macro , '7' , '-94906266' , '-1' , '-94906259' ) ; +test( macro , '-7' , '-94906266' , '0' , '-7' ) ; test( macro , '7' , '1073741824' , '0' , '7' ) ; test( macro , '-7' , '1073741824' , '-1' , '1073741817' ) ; test( macro , '7' , '-1073741824' , '-1' , '-1073741817' ) ; @@ -241,6 +265,14 @@ test( macro , '9' , '5678' , '0' , '9' ) ; test( macro , '-9' , '5678' , '-1' , '5669' ) ; test( macro , '9' , '-5678' , '-1' , '-5669' ) ; test( macro , '-9' , '-5678' , '0' , '-9' ) ; +test( macro , '9' , '94906265' , '0' , '9' ) ; +test( macro , '-9' , '94906265' , '-1' , '94906256' ) ; +test( macro , '9' , '-94906265' , '-1' , '-94906256' ) ; +test( macro , '-9' , '-94906265' , '0' , '-9' ) ; +test( macro , '9' , '94906266' , '0' , '9' ) ; +test( macro , '-9' , '94906266' , '-1' , '94906257' ) ; +test( macro , '9' , '-94906266' , '-1' , '-94906257' ) ; +test( macro , '-9' , '-94906266' , '0' , '-9' ) ; test( macro , '9' , '1073741824' , '0' , '9' ) ; test( macro , '-9' , '1073741824' , '-1' , '1073741815' ) ; test( macro , '9' , '-1073741824' , '-1' , '-1073741815' ) ; @@ -301,6 +333,14 @@ test( macro , '11' , '5678' , '0' , '11' ) ; test( macro , '-11' , '5678' , '-1' , '5667' ) ; test( macro , '11' , '-5678' , '-1' , '-5667' ) ; test( macro , '-11' , '-5678' , '0' , '-11' ) ; +test( macro , '11' , '94906265' , '0' , '11' ) ; +test( macro , '-11' , '94906265' , '-1' , '94906254' ) ; +test( macro , '11' , '-94906265' , '-1' , '-94906254' ) ; +test( macro , '-11' , '-94906265' , '0' , '-11' ) ; +test( macro , '11' , '94906266' , '0' , '11' ) ; +test( macro , '-11' , '94906266' , '-1' , '94906255' ) ; +test( macro , '11' , '-94906266' , '-1' , '-94906255' ) ; +test( macro , '-11' , '-94906266' , '0' , '-11' ) ; test( macro , '11' , '1073741824' , '0' , '11' ) ; test( macro , '-11' , '1073741824' , '-1' , '1073741813' ) ; test( macro , '11' , '-1073741824' , '-1' , '-1073741813' ) ; @@ -361,6 +401,14 @@ test( macro , '17' , '5678' , '0' , '17' ) ; test( macro , '-17' , '5678' , '-1' , '5661' ) ; test( macro , '17' , '-5678' , '-1' , '-5661' ) ; test( macro , '-17' , '-5678' , '0' , '-17' ) ; +test( macro , '17' , '94906265' , '0' , '17' ) ; +test( macro , '-17' , '94906265' , '-1' , '94906248' ) ; +test( macro , '17' , '-94906265' , '-1' , '-94906248' ) ; +test( macro , '-17' , '-94906265' , '0' , '-17' ) ; +test( macro , '17' , '94906266' , '0' , '17' ) ; +test( macro , '-17' , '94906266' , '-1' , '94906249' ) ; +test( macro , '17' , '-94906266' , '-1' , '-94906249' ) ; +test( macro , '-17' , '-94906266' , '0' , '-17' ) ; test( macro , '17' , '1073741824' , '0' , '17' ) ; test( macro , '-17' , '1073741824' , '-1' , '1073741807' ) ; test( macro , '17' , '-1073741824' , '-1' , '-1073741807' ) ; @@ -421,6 +469,14 @@ test( macro , '22' , '5678' , '0' , '22' ) ; test( macro , '-22' , '5678' , '-1' , '5656' ) ; test( macro , '22' , '-5678' , '-1' , '-5656' ) ; test( macro , '-22' , '-5678' , '0' , '-22' ) ; +test( macro , '22' , '94906265' , '0' , '22' ) ; +test( macro , '-22' , '94906265' , '-1' , '94906243' ) ; +test( macro , '22' , '-94906265' , '-1' , '-94906243' ) ; +test( macro , '-22' , '-94906265' , '0' , '-22' ) ; +test( macro , '22' , '94906266' , '0' , '22' ) ; +test( macro , '-22' , '94906266' , '-1' , '94906244' ) ; +test( macro , '22' , '-94906266' , '-1' , '-94906244' ) ; +test( macro , '-22' , '-94906266' , '0' , '-22' ) ; test( macro , '22' , '1073741824' , '0' , '22' ) ; test( macro , '-22' , '1073741824' , '-1' , '1073741802' ) ; test( macro , '22' , '-1073741824' , '-1' , '-1073741802' ) ; @@ -481,6 +537,14 @@ test( macro , '24' , '5678' , '0' , '24' ) ; test( macro , '-24' , '5678' , '-1' , '5654' ) ; test( macro , '24' , '-5678' , '-1' , '-5654' ) ; test( macro , '-24' , '-5678' , '0' , '-24' ) ; +test( macro , '24' , '94906265' , '0' , '24' ) ; +test( macro , '-24' , '94906265' , '-1' , '94906241' ) ; +test( macro , '24' , '-94906265' , '-1' , '-94906241' ) ; +test( macro , '-24' , '-94906265' , '0' , '-24' ) ; +test( macro , '24' , '94906266' , '0' , '24' ) ; +test( macro , '-24' , '94906266' , '-1' , '94906242' ) ; +test( macro , '24' , '-94906266' , '-1' , '-94906242' ) ; +test( macro , '-24' , '-94906266' , '0' , '-24' ) ; test( macro , '24' , '1073741824' , '0' , '24' ) ; test( macro , '-24' , '1073741824' , '-1' , '1073741800' ) ; test( macro , '24' , '-1073741824' , '-1' , '-1073741800' ) ; @@ -541,6 +605,14 @@ test( macro , '27' , '5678' , '0' , '27' ) ; test( macro , '-27' , '5678' , '-1' , '5651' ) ; test( macro , '27' , '-5678' , '-1' , '-5651' ) ; test( macro , '-27' , '-5678' , '0' , '-27' ) ; +test( macro , '27' , '94906265' , '0' , '27' ) ; +test( macro , '-27' , '94906265' , '-1' , '94906238' ) ; +test( macro , '27' , '-94906265' , '-1' , '-94906238' ) ; +test( macro , '-27' , '-94906265' , '0' , '-27' ) ; +test( macro , '27' , '94906266' , '0' , '27' ) ; +test( macro , '-27' , '94906266' , '-1' , '94906239' ) ; +test( macro , '27' , '-94906266' , '-1' , '-94906239' ) ; +test( macro , '-27' , '-94906266' , '0' , '-27' ) ; test( macro , '27' , '1073741824' , '0' , '27' ) ; test( macro , '-27' , '1073741824' , '-1' , '1073741797' ) ; test( macro , '27' , '-1073741824' , '-1' , '-1073741797' ) ; @@ -601,6 +673,14 @@ test( macro , '29' , '5678' , '0' , '29' ) ; test( macro , '-29' , '5678' , '-1' , '5649' ) ; test( macro , '29' , '-5678' , '-1' , '-5649' ) ; test( macro , '-29' , '-5678' , '0' , '-29' ) ; +test( macro , '29' , '94906265' , '0' , '29' ) ; +test( macro , '-29' , '94906265' , '-1' , '94906236' ) ; +test( macro , '29' , '-94906265' , '-1' , '-94906236' ) ; +test( macro , '-29' , '-94906265' , '0' , '-29' ) ; +test( macro , '29' , '94906266' , '0' , '29' ) ; +test( macro , '-29' , '94906266' , '-1' , '94906237' ) ; +test( macro , '29' , '-94906266' , '-1' , '-94906237' ) ; +test( macro , '-29' , '-94906266' , '0' , '-29' ) ; test( macro , '29' , '1073741824' , '0' , '29' ) ; test( macro , '-29' , '1073741824' , '-1' , '1073741795' ) ; test( macro , '29' , '-1073741824' , '-1' , '-1073741795' ) ; @@ -661,6 +741,14 @@ test( macro , '1234' , '5678' , '0' , '1234' ) ; test( macro , '-1234' , '5678' , '-1' , '4444' ) ; test( macro , '1234' , '-5678' , '-1' , '-4444' ) ; test( macro , '-1234' , '-5678' , '0' , '-1234' ) ; +test( macro , '1234' , '94906265' , '0' , '1234' ) ; +test( macro , '-1234' , '94906265' , '-1' , '94905031' ) ; +test( macro , '1234' , '-94906265' , '-1' , '-94905031' ) ; +test( macro , '-1234' , '-94906265' , '0' , '-1234' ) ; +test( macro , '1234' , '94906266' , '0' , '1234' ) ; +test( macro , '-1234' , '94906266' , '-1' , '94905032' ) ; +test( macro , '1234' , '-94906266' , '-1' , '-94905032' ) ; +test( macro , '-1234' , '-94906266' , '0' , '-1234' ) ; test( macro , '1234' , '1073741824' , '0' , '1234' ) ; test( macro , '-1234' , '1073741824' , '-1' , '1073740590' ) ; test( macro , '1234' , '-1073741824' , '-1' , '-1073740590' ) ; @@ -721,6 +809,14 @@ test( macro , '5678' , '5678' , '1' , '0' ) ; test( macro , '-5678' , '5678' , '-1' , '0' ) ; test( macro , '5678' , '-5678' , '-1' , '0' ) ; test( macro , '-5678' , '-5678' , '1' , '0' ) ; +test( macro , '5678' , '94906265' , '0' , '5678' ) ; +test( macro , '-5678' , '94906265' , '-1' , '94900587' ) ; +test( macro , '5678' , '-94906265' , '-1' , '-94900587' ) ; +test( macro , '-5678' , '-94906265' , '0' , '-5678' ) ; +test( macro , '5678' , '94906266' , '0' , '5678' ) ; +test( macro , '-5678' , '94906266' , '-1' , '94900588' ) ; +test( macro , '5678' , '-94906266' , '-1' , '-94900588' ) ; +test( macro , '-5678' , '-94906266' , '0' , '-5678' ) ; test( macro , '5678' , '1073741824' , '0' , '5678' ) ; test( macro , '-5678' , '1073741824' , '-1' , '1073736146' ) ; test( macro , '5678' , '-1073741824' , '-1' , '-1073736146' ) ; @@ -733,6 +829,142 @@ test( macro , '5678' , '717897987691852588770249' , '0' , '5678' ) ; test( macro , '-5678' , '717897987691852588770249' , '-1' , '717897987691852588764571' ) ; test( macro , '5678' , '-717897987691852588770249' , '-1' , '-717897987691852588764571' ) ; test( macro , '-5678' , '-717897987691852588770249' , '0' , '-5678' ) ; +test( macro , '94906265' , '1' , '94906265' , '0' ) ; +test( macro , '-94906265' , '1' , '-94906265' , '0' ) ; +test( macro , '94906265' , '-1' , '-94906265' , '0' ) ; +test( macro , '-94906265' , '-1' , '94906265' , '0' ) ; +test( macro , '94906265' , '3' , '31635421' , '2' ) ; +test( macro , '-94906265' , '3' , '-31635422' , '1' ) ; +test( macro , '94906265' , '-3' , '-31635422' , '-1' ) ; +test( macro , '-94906265' , '-3' , '31635421' , '-2' ) ; +test( macro , '94906265' , '7' , '13558037' , '6' ) ; +test( macro , '-94906265' , '7' , '-13558038' , '1' ) ; +test( macro , '94906265' , '-7' , '-13558038' , '-1' ) ; +test( macro , '-94906265' , '-7' , '13558037' , '-6' ) ; +test( macro , '94906265' , '9' , '10545140' , '5' ) ; +test( macro , '-94906265' , '9' , '-10545141' , '4' ) ; +test( macro , '94906265' , '-9' , '-10545141' , '-4' ) ; +test( macro , '-94906265' , '-9' , '10545140' , '-5' ) ; +test( macro , '94906265' , '11' , '8627842' , '3' ) ; +test( macro , '-94906265' , '11' , '-8627843' , '8' ) ; +test( macro , '94906265' , '-11' , '-8627843' , '-8' ) ; +test( macro , '-94906265' , '-11' , '8627842' , '-3' ) ; +test( macro , '94906265' , '17' , '5582721' , '8' ) ; +test( macro , '-94906265' , '17' , '-5582722' , '9' ) ; +test( macro , '94906265' , '-17' , '-5582722' , '-9' ) ; +test( macro , '-94906265' , '-17' , '5582721' , '-8' ) ; +test( macro , '94906265' , '22' , '4313921' , '3' ) ; +test( macro , '-94906265' , '22' , '-4313922' , '19' ) ; +test( macro , '94906265' , '-22' , '-4313922' , '-19' ) ; +test( macro , '-94906265' , '-22' , '4313921' , '-3' ) ; +test( macro , '94906265' , '24' , '3954427' , '17' ) ; +test( macro , '-94906265' , '24' , '-3954428' , '7' ) ; +test( macro , '94906265' , '-24' , '-3954428' , '-7' ) ; +test( macro , '-94906265' , '-24' , '3954427' , '-17' ) ; +test( macro , '94906265' , '27' , '3515046' , '23' ) ; +test( macro , '-94906265' , '27' , '-3515047' , '4' ) ; +test( macro , '94906265' , '-27' , '-3515047' , '-4' ) ; +test( macro , '-94906265' , '-27' , '3515046' , '-23' ) ; +test( macro , '94906265' , '29' , '3272629' , '24' ) ; +test( macro , '-94906265' , '29' , '-3272630' , '5' ) ; +test( macro , '94906265' , '-29' , '-3272630' , '-5' ) ; +test( macro , '-94906265' , '-29' , '3272629' , '-24' ) ; +test( macro , '94906265' , '1234' , '76909' , '559' ) ; +test( macro , '-94906265' , '1234' , '-76910' , '675' ) ; +test( macro , '94906265' , '-1234' , '-76910' , '-675' ) ; +test( macro , '-94906265' , '-1234' , '76909' , '-559' ) ; +test( macro , '94906265' , '5678' , '16714' , '4173' ) ; +test( macro , '-94906265' , '5678' , '-16715' , '1505' ) ; +test( macro , '94906265' , '-5678' , '-16715' , '-1505' ) ; +test( macro , '-94906265' , '-5678' , '16714' , '-4173' ) ; +test( macro , '94906265' , '94906265' , '1' , '0' ) ; +test( macro , '-94906265' , '94906265' , '-1' , '0' ) ; +test( macro , '94906265' , '-94906265' , '-1' , '0' ) ; +test( macro , '-94906265' , '-94906265' , '1' , '0' ) ; +test( macro , '94906265' , '94906266' , '0' , '94906265' ) ; +test( macro , '-94906265' , '94906266' , '-1' , '1' ) ; +test( macro , '94906265' , '-94906266' , '-1' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '0' , '-94906265' ) ; +test( macro , '94906265' , '1073741824' , '0' , '94906265' ) ; +test( macro , '-94906265' , '1073741824' , '-1' , '978835559' ) ; +test( macro , '94906265' , '-1073741824' , '-1' , '-978835559' ) ; +test( macro , '-94906265' , '-1073741824' , '0' , '-94906265' ) ; +test( macro , '94906265' , '51676101935731' , '0' , '94906265' ) ; +test( macro , '-94906265' , '51676101935731' , '-1' , '51676007029466' ) ; +test( macro , '94906265' , '-51676101935731' , '-1' , '-51676007029466' ) ; +test( macro , '-94906265' , '-51676101935731' , '0' , '-94906265' ) ; +test( macro , '94906265' , '717897987691852588770249' , '0' , '94906265' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-1' , '717897987691852493863984' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-1' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '0' , '-94906265' ) ; +test( macro , '94906266' , '1' , '94906266' , '0' ) ; +test( macro , '-94906266' , '1' , '-94906266' , '0' ) ; +test( macro , '94906266' , '-1' , '-94906266' , '0' ) ; +test( macro , '-94906266' , '-1' , '94906266' , '0' ) ; +test( macro , '94906266' , '3' , '31635422' , '0' ) ; +test( macro , '-94906266' , '3' , '-31635422' , '0' ) ; +test( macro , '94906266' , '-3' , '-31635422' , '0' ) ; +test( macro , '-94906266' , '-3' , '31635422' , '0' ) ; +test( macro , '94906266' , '7' , '13558038' , '0' ) ; +test( macro , '-94906266' , '7' , '-13558038' , '0' ) ; +test( macro , '94906266' , '-7' , '-13558038' , '0' ) ; +test( macro , '-94906266' , '-7' , '13558038' , '0' ) ; +test( macro , '94906266' , '9' , '10545140' , '6' ) ; +test( macro , '-94906266' , '9' , '-10545141' , '3' ) ; +test( macro , '94906266' , '-9' , '-10545141' , '-3' ) ; +test( macro , '-94906266' , '-9' , '10545140' , '-6' ) ; +test( macro , '94906266' , '11' , '8627842' , '4' ) ; +test( macro , '-94906266' , '11' , '-8627843' , '7' ) ; +test( macro , '94906266' , '-11' , '-8627843' , '-7' ) ; +test( macro , '-94906266' , '-11' , '8627842' , '-4' ) ; +test( macro , '94906266' , '17' , '5582721' , '9' ) ; +test( macro , '-94906266' , '17' , '-5582722' , '8' ) ; +test( macro , '94906266' , '-17' , '-5582722' , '-8' ) ; +test( macro , '-94906266' , '-17' , '5582721' , '-9' ) ; +test( macro , '94906266' , '22' , '4313921' , '4' ) ; +test( macro , '-94906266' , '22' , '-4313922' , '18' ) ; +test( macro , '94906266' , '-22' , '-4313922' , '-18' ) ; +test( macro , '-94906266' , '-22' , '4313921' , '-4' ) ; +test( macro , '94906266' , '24' , '3954427' , '18' ) ; +test( macro , '-94906266' , '24' , '-3954428' , '6' ) ; +test( macro , '94906266' , '-24' , '-3954428' , '-6' ) ; +test( macro , '-94906266' , '-24' , '3954427' , '-18' ) ; +test( macro , '94906266' , '27' , '3515046' , '24' ) ; +test( macro , '-94906266' , '27' , '-3515047' , '3' ) ; +test( macro , '94906266' , '-27' , '-3515047' , '-3' ) ; +test( macro , '-94906266' , '-27' , '3515046' , '-24' ) ; +test( macro , '94906266' , '29' , '3272629' , '25' ) ; +test( macro , '-94906266' , '29' , '-3272630' , '4' ) ; +test( macro , '94906266' , '-29' , '-3272630' , '-4' ) ; +test( macro , '-94906266' , '-29' , '3272629' , '-25' ) ; +test( macro , '94906266' , '1234' , '76909' , '560' ) ; +test( macro , '-94906266' , '1234' , '-76910' , '674' ) ; +test( macro , '94906266' , '-1234' , '-76910' , '-674' ) ; +test( macro , '-94906266' , '-1234' , '76909' , '-560' ) ; +test( macro , '94906266' , '5678' , '16714' , '4174' ) ; +test( macro , '-94906266' , '5678' , '-16715' , '1504' ) ; +test( macro , '94906266' , '-5678' , '-16715' , '-1504' ) ; +test( macro , '-94906266' , '-5678' , '16714' , '-4174' ) ; +test( macro , '94906266' , '94906265' , '1' , '1' ) ; +test( macro , '-94906266' , '94906265' , '-2' , '94906264' ) ; +test( macro , '94906266' , '-94906265' , '-2' , '-94906264' ) ; +test( macro , '-94906266' , '-94906265' , '1' , '-1' ) ; +test( macro , '94906266' , '94906266' , '1' , '0' ) ; +test( macro , '-94906266' , '94906266' , '-1' , '0' ) ; +test( macro , '94906266' , '-94906266' , '-1' , '0' ) ; +test( macro , '-94906266' , '-94906266' , '1' , '0' ) ; +test( macro , '94906266' , '1073741824' , '0' , '94906266' ) ; +test( macro , '-94906266' , '1073741824' , '-1' , '978835558' ) ; +test( macro , '94906266' , '-1073741824' , '-1' , '-978835558' ) ; +test( macro , '-94906266' , '-1073741824' , '0' , '-94906266' ) ; +test( macro , '94906266' , '51676101935731' , '0' , '94906266' ) ; +test( macro , '-94906266' , '51676101935731' , '-1' , '51676007029465' ) ; +test( macro , '94906266' , '-51676101935731' , '-1' , '-51676007029465' ) ; +test( macro , '-94906266' , '-51676101935731' , '0' , '-94906266' ) ; +test( macro , '94906266' , '717897987691852588770249' , '0' , '94906266' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-1' , '717897987691852493863983' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-1' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '0' , '-94906266' ) ; test( macro , '1073741824' , '1' , '1073741824' , '0' ) ; test( macro , '-1073741824' , '1' , '-1073741824' , '0' ) ; test( macro , '1073741824' , '-1' , '-1073741824' , '0' ) ; @@ -781,6 +1013,14 @@ test( macro , '1073741824' , '5678' , '189105' , '3634' ) ; test( macro , '-1073741824' , '5678' , '-189106' , '2044' ) ; test( macro , '1073741824' , '-5678' , '-189106' , '-2044' ) ; test( macro , '-1073741824' , '-5678' , '189105' , '-3634' ) ; +test( macro , '1073741824' , '94906265' , '11' , '29772909' ) ; +test( macro , '-1073741824' , '94906265' , '-12' , '65133356' ) ; +test( macro , '1073741824' , '-94906265' , '-12' , '-65133356' ) ; +test( macro , '-1073741824' , '-94906265' , '11' , '-29772909' ) ; +test( macro , '1073741824' , '94906266' , '11' , '29772898' ) ; +test( macro , '-1073741824' , '94906266' , '-12' , '65133368' ) ; +test( macro , '1073741824' , '-94906266' , '-12' , '-65133368' ) ; +test( macro , '-1073741824' , '-94906266' , '11' , '-29772898' ) ; test( macro , '1073741824' , '1073741824' , '1' , '0' ) ; test( macro , '-1073741824' , '1073741824' , '-1' , '0' ) ; test( macro , '1073741824' , '-1073741824' , '-1' , '0' ) ; @@ -841,6 +1081,14 @@ test( macro , '51676101935731' , '5678' , '9101109886' , '3023' ) ; test( macro , '-51676101935731' , '5678' , '-9101109887' , '2655' ) ; test( macro , '51676101935731' , '-5678' , '-9101109887' , '-2655' ) ; test( macro , '-51676101935731' , '-5678' , '9101109886' , '-3023' ) ; +test( macro , '51676101935731' , '94906265' , '544496' , '20268291' ) ; +test( macro , '-51676101935731' , '94906265' , '-544497' , '74637974' ) ; +test( macro , '51676101935731' , '-94906265' , '-544497' , '-74637974' ) ; +test( macro , '-51676101935731' , '-94906265' , '544496' , '-20268291' ) ; +test( macro , '51676101935731' , '94906266' , '544496' , '19723795' ) ; +test( macro , '-51676101935731' , '94906266' , '-544497' , '75182471' ) ; +test( macro , '51676101935731' , '-94906266' , '-544497' , '-75182471' ) ; +test( macro , '-51676101935731' , '-94906266' , '544496' , '-19723795' ) ; test( macro , '51676101935731' , '1073741824' , '48127' , '129172083' ) ; test( macro , '-51676101935731' , '1073741824' , '-48128' , '944569741' ) ; test( macro , '51676101935731' , '-1073741824' , '-48128' , '-944569741' ) ; @@ -901,6 +1149,14 @@ test( macro , '717897987691852588770249' , '5678' , '126435010160593974774' , '3 test( macro , '-717897987691852588770249' , '5678' , '-126435010160593974775' , '2201' ) ; test( macro , '717897987691852588770249' , '-5678' , '-126435010160593974775' , '-2201' ) ; test( macro , '-717897987691852588770249' , '-5678' , '126435010160593974774' , '-3477' ) ; +test( macro , '717897987691852588770249' , '94906265' , '7564284483135571' , '56517934' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-7564284483135572' , '38388331' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-7564284483135572' , '-38388331' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '7564284483135571' , '-56517934' ) ; +test( macro , '717897987691852588770249' , '94906266' , '7564284403432883' , '81625371' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-7564284403432884' , '13280895' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-7564284403432884' , '-13280895' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '7564284403432883' , '-81625371' ) ; test( macro , '717897987691852588770249' , '1073741824' , '668594602208447' , '278782921' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-668594602208448' , '794958903' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-668594602208448' , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/idivmodn.js b/test/src/integer/arithmetic/idivmodn.js index 3390296..0fa47dc 100644 --- a/test/src/integer/arithmetic/idivmodn.js +++ b/test/src/integer/arithmetic/idivmodn.js @@ -59,6 +59,14 @@ test( macro , '1' , 5678 , '0' , '1' ) ; test( macro , '-1' , 5678 , '-1' , '5677' ) ; test( macro , '1' , -5678 , '-1' , '-5677' ) ; test( macro , '-1' , -5678 , '0' , '-1' ) ; +test( macro , '1' , 94906265 , '0' , '1' ) ; +test( macro , '-1' , 94906265 , '-1' , '94906264' ) ; +test( macro , '1' , -94906265 , '-1' , '-94906264' ) ; +test( macro , '-1' , -94906265 , '0' , '-1' ) ; +test( macro , '1' , 94906266 , '0' , '1' ) ; +test( macro , '-1' , 94906266 , '-1' , '94906265' ) ; +test( macro , '1' , -94906266 , '-1' , '-94906265' ) ; +test( macro , '-1' , -94906266 , '0' , '-1' ) ; test( macro , '1' , 1073741824 , '0' , '1' ) ; test( macro , '-1' , 1073741824 , '-1' , '1073741823' ) ; test( macro , '1' , -1073741824 , '-1' , '-1073741823' ) ; @@ -115,6 +123,14 @@ test( macro , '3' , 5678 , '0' , '3' ) ; test( macro , '-3' , 5678 , '-1' , '5675' ) ; test( macro , '3' , -5678 , '-1' , '-5675' ) ; test( macro , '-3' , -5678 , '0' , '-3' ) ; +test( macro , '3' , 94906265 , '0' , '3' ) ; +test( macro , '-3' , 94906265 , '-1' , '94906262' ) ; +test( macro , '3' , -94906265 , '-1' , '-94906262' ) ; +test( macro , '-3' , -94906265 , '0' , '-3' ) ; +test( macro , '3' , 94906266 , '0' , '3' ) ; +test( macro , '-3' , 94906266 , '-1' , '94906263' ) ; +test( macro , '3' , -94906266 , '-1' , '-94906263' ) ; +test( macro , '-3' , -94906266 , '0' , '-3' ) ; test( macro , '3' , 1073741824 , '0' , '3' ) ; test( macro , '-3' , 1073741824 , '-1' , '1073741821' ) ; test( macro , '3' , -1073741824 , '-1' , '-1073741821' ) ; @@ -171,6 +187,14 @@ test( macro , '7' , 5678 , '0' , '7' ) ; test( macro , '-7' , 5678 , '-1' , '5671' ) ; test( macro , '7' , -5678 , '-1' , '-5671' ) ; test( macro , '-7' , -5678 , '0' , '-7' ) ; +test( macro , '7' , 94906265 , '0' , '7' ) ; +test( macro , '-7' , 94906265 , '-1' , '94906258' ) ; +test( macro , '7' , -94906265 , '-1' , '-94906258' ) ; +test( macro , '-7' , -94906265 , '0' , '-7' ) ; +test( macro , '7' , 94906266 , '0' , '7' ) ; +test( macro , '-7' , 94906266 , '-1' , '94906259' ) ; +test( macro , '7' , -94906266 , '-1' , '-94906259' ) ; +test( macro , '-7' , -94906266 , '0' , '-7' ) ; test( macro , '7' , 1073741824 , '0' , '7' ) ; test( macro , '-7' , 1073741824 , '-1' , '1073741817' ) ; test( macro , '7' , -1073741824 , '-1' , '-1073741817' ) ; @@ -227,6 +251,14 @@ test( macro , '9' , 5678 , '0' , '9' ) ; test( macro , '-9' , 5678 , '-1' , '5669' ) ; test( macro , '9' , -5678 , '-1' , '-5669' ) ; test( macro , '-9' , -5678 , '0' , '-9' ) ; +test( macro , '9' , 94906265 , '0' , '9' ) ; +test( macro , '-9' , 94906265 , '-1' , '94906256' ) ; +test( macro , '9' , -94906265 , '-1' , '-94906256' ) ; +test( macro , '-9' , -94906265 , '0' , '-9' ) ; +test( macro , '9' , 94906266 , '0' , '9' ) ; +test( macro , '-9' , 94906266 , '-1' , '94906257' ) ; +test( macro , '9' , -94906266 , '-1' , '-94906257' ) ; +test( macro , '-9' , -94906266 , '0' , '-9' ) ; test( macro , '9' , 1073741824 , '0' , '9' ) ; test( macro , '-9' , 1073741824 , '-1' , '1073741815' ) ; test( macro , '9' , -1073741824 , '-1' , '-1073741815' ) ; @@ -283,6 +315,14 @@ test( macro , '11' , 5678 , '0' , '11' ) ; test( macro , '-11' , 5678 , '-1' , '5667' ) ; test( macro , '11' , -5678 , '-1' , '-5667' ) ; test( macro , '-11' , -5678 , '0' , '-11' ) ; +test( macro , '11' , 94906265 , '0' , '11' ) ; +test( macro , '-11' , 94906265 , '-1' , '94906254' ) ; +test( macro , '11' , -94906265 , '-1' , '-94906254' ) ; +test( macro , '-11' , -94906265 , '0' , '-11' ) ; +test( macro , '11' , 94906266 , '0' , '11' ) ; +test( macro , '-11' , 94906266 , '-1' , '94906255' ) ; +test( macro , '11' , -94906266 , '-1' , '-94906255' ) ; +test( macro , '-11' , -94906266 , '0' , '-11' ) ; test( macro , '11' , 1073741824 , '0' , '11' ) ; test( macro , '-11' , 1073741824 , '-1' , '1073741813' ) ; test( macro , '11' , -1073741824 , '-1' , '-1073741813' ) ; @@ -339,6 +379,14 @@ test( macro , '17' , 5678 , '0' , '17' ) ; test( macro , '-17' , 5678 , '-1' , '5661' ) ; test( macro , '17' , -5678 , '-1' , '-5661' ) ; test( macro , '-17' , -5678 , '0' , '-17' ) ; +test( macro , '17' , 94906265 , '0' , '17' ) ; +test( macro , '-17' , 94906265 , '-1' , '94906248' ) ; +test( macro , '17' , -94906265 , '-1' , '-94906248' ) ; +test( macro , '-17' , -94906265 , '0' , '-17' ) ; +test( macro , '17' , 94906266 , '0' , '17' ) ; +test( macro , '-17' , 94906266 , '-1' , '94906249' ) ; +test( macro , '17' , -94906266 , '-1' , '-94906249' ) ; +test( macro , '-17' , -94906266 , '0' , '-17' ) ; test( macro , '17' , 1073741824 , '0' , '17' ) ; test( macro , '-17' , 1073741824 , '-1' , '1073741807' ) ; test( macro , '17' , -1073741824 , '-1' , '-1073741807' ) ; @@ -395,6 +443,14 @@ test( macro , '22' , 5678 , '0' , '22' ) ; test( macro , '-22' , 5678 , '-1' , '5656' ) ; test( macro , '22' , -5678 , '-1' , '-5656' ) ; test( macro , '-22' , -5678 , '0' , '-22' ) ; +test( macro , '22' , 94906265 , '0' , '22' ) ; +test( macro , '-22' , 94906265 , '-1' , '94906243' ) ; +test( macro , '22' , -94906265 , '-1' , '-94906243' ) ; +test( macro , '-22' , -94906265 , '0' , '-22' ) ; +test( macro , '22' , 94906266 , '0' , '22' ) ; +test( macro , '-22' , 94906266 , '-1' , '94906244' ) ; +test( macro , '22' , -94906266 , '-1' , '-94906244' ) ; +test( macro , '-22' , -94906266 , '0' , '-22' ) ; test( macro , '22' , 1073741824 , '0' , '22' ) ; test( macro , '-22' , 1073741824 , '-1' , '1073741802' ) ; test( macro , '22' , -1073741824 , '-1' , '-1073741802' ) ; @@ -451,6 +507,14 @@ test( macro , '24' , 5678 , '0' , '24' ) ; test( macro , '-24' , 5678 , '-1' , '5654' ) ; test( macro , '24' , -5678 , '-1' , '-5654' ) ; test( macro , '-24' , -5678 , '0' , '-24' ) ; +test( macro , '24' , 94906265 , '0' , '24' ) ; +test( macro , '-24' , 94906265 , '-1' , '94906241' ) ; +test( macro , '24' , -94906265 , '-1' , '-94906241' ) ; +test( macro , '-24' , -94906265 , '0' , '-24' ) ; +test( macro , '24' , 94906266 , '0' , '24' ) ; +test( macro , '-24' , 94906266 , '-1' , '94906242' ) ; +test( macro , '24' , -94906266 , '-1' , '-94906242' ) ; +test( macro , '-24' , -94906266 , '0' , '-24' ) ; test( macro , '24' , 1073741824 , '0' , '24' ) ; test( macro , '-24' , 1073741824 , '-1' , '1073741800' ) ; test( macro , '24' , -1073741824 , '-1' , '-1073741800' ) ; @@ -507,6 +571,14 @@ test( macro , '27' , 5678 , '0' , '27' ) ; test( macro , '-27' , 5678 , '-1' , '5651' ) ; test( macro , '27' , -5678 , '-1' , '-5651' ) ; test( macro , '-27' , -5678 , '0' , '-27' ) ; +test( macro , '27' , 94906265 , '0' , '27' ) ; +test( macro , '-27' , 94906265 , '-1' , '94906238' ) ; +test( macro , '27' , -94906265 , '-1' , '-94906238' ) ; +test( macro , '-27' , -94906265 , '0' , '-27' ) ; +test( macro , '27' , 94906266 , '0' , '27' ) ; +test( macro , '-27' , 94906266 , '-1' , '94906239' ) ; +test( macro , '27' , -94906266 , '-1' , '-94906239' ) ; +test( macro , '-27' , -94906266 , '0' , '-27' ) ; test( macro , '27' , 1073741824 , '0' , '27' ) ; test( macro , '-27' , 1073741824 , '-1' , '1073741797' ) ; test( macro , '27' , -1073741824 , '-1' , '-1073741797' ) ; @@ -563,6 +635,14 @@ test( macro , '29' , 5678 , '0' , '29' ) ; test( macro , '-29' , 5678 , '-1' , '5649' ) ; test( macro , '29' , -5678 , '-1' , '-5649' ) ; test( macro , '-29' , -5678 , '0' , '-29' ) ; +test( macro , '29' , 94906265 , '0' , '29' ) ; +test( macro , '-29' , 94906265 , '-1' , '94906236' ) ; +test( macro , '29' , -94906265 , '-1' , '-94906236' ) ; +test( macro , '-29' , -94906265 , '0' , '-29' ) ; +test( macro , '29' , 94906266 , '0' , '29' ) ; +test( macro , '-29' , 94906266 , '-1' , '94906237' ) ; +test( macro , '29' , -94906266 , '-1' , '-94906237' ) ; +test( macro , '-29' , -94906266 , '0' , '-29' ) ; test( macro , '29' , 1073741824 , '0' , '29' ) ; test( macro , '-29' , 1073741824 , '-1' , '1073741795' ) ; test( macro , '29' , -1073741824 , '-1' , '-1073741795' ) ; @@ -619,6 +699,14 @@ test( macro , '1234' , 5678 , '0' , '1234' ) ; test( macro , '-1234' , 5678 , '-1' , '4444' ) ; test( macro , '1234' , -5678 , '-1' , '-4444' ) ; test( macro , '-1234' , -5678 , '0' , '-1234' ) ; +test( macro , '1234' , 94906265 , '0' , '1234' ) ; +test( macro , '-1234' , 94906265 , '-1' , '94905031' ) ; +test( macro , '1234' , -94906265 , '-1' , '-94905031' ) ; +test( macro , '-1234' , -94906265 , '0' , '-1234' ) ; +test( macro , '1234' , 94906266 , '0' , '1234' ) ; +test( macro , '-1234' , 94906266 , '-1' , '94905032' ) ; +test( macro , '1234' , -94906266 , '-1' , '-94905032' ) ; +test( macro , '-1234' , -94906266 , '0' , '-1234' ) ; test( macro , '1234' , 1073741824 , '0' , '1234' ) ; test( macro , '-1234' , 1073741824 , '-1' , '1073740590' ) ; test( macro , '1234' , -1073741824 , '-1' , '-1073740590' ) ; @@ -675,6 +763,14 @@ test( macro , '5678' , 5678 , '1' , '0' ) ; test( macro , '-5678' , 5678 , '-1' , '0' ) ; test( macro , '5678' , -5678 , '-1' , '0' ) ; test( macro , '-5678' , -5678 , '1' , '0' ) ; +test( macro , '5678' , 94906265 , '0' , '5678' ) ; +test( macro , '-5678' , 94906265 , '-1' , '94900587' ) ; +test( macro , '5678' , -94906265 , '-1' , '-94900587' ) ; +test( macro , '-5678' , -94906265 , '0' , '-5678' ) ; +test( macro , '5678' , 94906266 , '0' , '5678' ) ; +test( macro , '-5678' , 94906266 , '-1' , '94900588' ) ; +test( macro , '5678' , -94906266 , '-1' , '-94900588' ) ; +test( macro , '-5678' , -94906266 , '0' , '-5678' ) ; test( macro , '5678' , 1073741824 , '0' , '5678' ) ; test( macro , '-5678' , 1073741824 , '-1' , '1073736146' ) ; test( macro , '5678' , -1073741824 , '-1' , '-1073736146' ) ; @@ -683,6 +779,134 @@ test( macro , '5678' , 51676101935731 , '0' , '5678' ) ; test( macro , '-5678' , 51676101935731 , '-1' , '51676101930053' ) ; test( macro , '5678' , -51676101935731 , '-1' , '-51676101930053' ) ; test( macro , '-5678' , -51676101935731 , '0' , '-5678' ) ; +test( macro , '94906265' , 1 , '94906265' , '0' ) ; +test( macro , '-94906265' , 1 , '-94906265' , '0' ) ; +test( macro , '94906265' , -1 , '-94906265' , '0' ) ; +test( macro , '-94906265' , -1 , '94906265' , '0' ) ; +test( macro , '94906265' , 3 , '31635421' , '2' ) ; +test( macro , '-94906265' , 3 , '-31635422' , '1' ) ; +test( macro , '94906265' , -3 , '-31635422' , '-1' ) ; +test( macro , '-94906265' , -3 , '31635421' , '-2' ) ; +test( macro , '94906265' , 7 , '13558037' , '6' ) ; +test( macro , '-94906265' , 7 , '-13558038' , '1' ) ; +test( macro , '94906265' , -7 , '-13558038' , '-1' ) ; +test( macro , '-94906265' , -7 , '13558037' , '-6' ) ; +test( macro , '94906265' , 9 , '10545140' , '5' ) ; +test( macro , '-94906265' , 9 , '-10545141' , '4' ) ; +test( macro , '94906265' , -9 , '-10545141' , '-4' ) ; +test( macro , '-94906265' , -9 , '10545140' , '-5' ) ; +test( macro , '94906265' , 11 , '8627842' , '3' ) ; +test( macro , '-94906265' , 11 , '-8627843' , '8' ) ; +test( macro , '94906265' , -11 , '-8627843' , '-8' ) ; +test( macro , '-94906265' , -11 , '8627842' , '-3' ) ; +test( macro , '94906265' , 17 , '5582721' , '8' ) ; +test( macro , '-94906265' , 17 , '-5582722' , '9' ) ; +test( macro , '94906265' , -17 , '-5582722' , '-9' ) ; +test( macro , '-94906265' , -17 , '5582721' , '-8' ) ; +test( macro , '94906265' , 22 , '4313921' , '3' ) ; +test( macro , '-94906265' , 22 , '-4313922' , '19' ) ; +test( macro , '94906265' , -22 , '-4313922' , '-19' ) ; +test( macro , '-94906265' , -22 , '4313921' , '-3' ) ; +test( macro , '94906265' , 24 , '3954427' , '17' ) ; +test( macro , '-94906265' , 24 , '-3954428' , '7' ) ; +test( macro , '94906265' , -24 , '-3954428' , '-7' ) ; +test( macro , '-94906265' , -24 , '3954427' , '-17' ) ; +test( macro , '94906265' , 27 , '3515046' , '23' ) ; +test( macro , '-94906265' , 27 , '-3515047' , '4' ) ; +test( macro , '94906265' , -27 , '-3515047' , '-4' ) ; +test( macro , '-94906265' , -27 , '3515046' , '-23' ) ; +test( macro , '94906265' , 29 , '3272629' , '24' ) ; +test( macro , '-94906265' , 29 , '-3272630' , '5' ) ; +test( macro , '94906265' , -29 , '-3272630' , '-5' ) ; +test( macro , '-94906265' , -29 , '3272629' , '-24' ) ; +test( macro , '94906265' , 1234 , '76909' , '559' ) ; +test( macro , '-94906265' , 1234 , '-76910' , '675' ) ; +test( macro , '94906265' , -1234 , '-76910' , '-675' ) ; +test( macro , '-94906265' , -1234 , '76909' , '-559' ) ; +test( macro , '94906265' , 5678 , '16714' , '4173' ) ; +test( macro , '-94906265' , 5678 , '-16715' , '1505' ) ; +test( macro , '94906265' , -5678 , '-16715' , '-1505' ) ; +test( macro , '-94906265' , -5678 , '16714' , '-4173' ) ; +test( macro , '94906265' , 94906265 , '1' , '0' ) ; +test( macro , '-94906265' , 94906265 , '-1' , '0' ) ; +test( macro , '94906265' , -94906265 , '-1' , '0' ) ; +test( macro , '-94906265' , -94906265 , '1' , '0' ) ; +test( macro , '94906265' , 94906266 , '0' , '94906265' ) ; +test( macro , '-94906265' , 94906266 , '-1' , '1' ) ; +test( macro , '94906265' , -94906266 , '-1' , '-1' ) ; +test( macro , '-94906265' , -94906266 , '0' , '-94906265' ) ; +test( macro , '94906265' , 1073741824 , '0' , '94906265' ) ; +test( macro , '-94906265' , 1073741824 , '-1' , '978835559' ) ; +test( macro , '94906265' , -1073741824 , '-1' , '-978835559' ) ; +test( macro , '-94906265' , -1073741824 , '0' , '-94906265' ) ; +test( macro , '94906265' , 51676101935731 , '0' , '94906265' ) ; +test( macro , '-94906265' , 51676101935731 , '-1' , '51676007029466' ) ; +test( macro , '94906265' , -51676101935731 , '-1' , '-51676007029466' ) ; +test( macro , '-94906265' , -51676101935731 , '0' , '-94906265' ) ; +test( macro , '94906266' , 1 , '94906266' , '0' ) ; +test( macro , '-94906266' , 1 , '-94906266' , '0' ) ; +test( macro , '94906266' , -1 , '-94906266' , '0' ) ; +test( macro , '-94906266' , -1 , '94906266' , '0' ) ; +test( macro , '94906266' , 3 , '31635422' , '0' ) ; +test( macro , '-94906266' , 3 , '-31635422' , '0' ) ; +test( macro , '94906266' , -3 , '-31635422' , '0' ) ; +test( macro , '-94906266' , -3 , '31635422' , '0' ) ; +test( macro , '94906266' , 7 , '13558038' , '0' ) ; +test( macro , '-94906266' , 7 , '-13558038' , '0' ) ; +test( macro , '94906266' , -7 , '-13558038' , '0' ) ; +test( macro , '-94906266' , -7 , '13558038' , '0' ) ; +test( macro , '94906266' , 9 , '10545140' , '6' ) ; +test( macro , '-94906266' , 9 , '-10545141' , '3' ) ; +test( macro , '94906266' , -9 , '-10545141' , '-3' ) ; +test( macro , '-94906266' , -9 , '10545140' , '-6' ) ; +test( macro , '94906266' , 11 , '8627842' , '4' ) ; +test( macro , '-94906266' , 11 , '-8627843' , '7' ) ; +test( macro , '94906266' , -11 , '-8627843' , '-7' ) ; +test( macro , '-94906266' , -11 , '8627842' , '-4' ) ; +test( macro , '94906266' , 17 , '5582721' , '9' ) ; +test( macro , '-94906266' , 17 , '-5582722' , '8' ) ; +test( macro , '94906266' , -17 , '-5582722' , '-8' ) ; +test( macro , '-94906266' , -17 , '5582721' , '-9' ) ; +test( macro , '94906266' , 22 , '4313921' , '4' ) ; +test( macro , '-94906266' , 22 , '-4313922' , '18' ) ; +test( macro , '94906266' , -22 , '-4313922' , '-18' ) ; +test( macro , '-94906266' , -22 , '4313921' , '-4' ) ; +test( macro , '94906266' , 24 , '3954427' , '18' ) ; +test( macro , '-94906266' , 24 , '-3954428' , '6' ) ; +test( macro , '94906266' , -24 , '-3954428' , '-6' ) ; +test( macro , '-94906266' , -24 , '3954427' , '-18' ) ; +test( macro , '94906266' , 27 , '3515046' , '24' ) ; +test( macro , '-94906266' , 27 , '-3515047' , '3' ) ; +test( macro , '94906266' , -27 , '-3515047' , '-3' ) ; +test( macro , '-94906266' , -27 , '3515046' , '-24' ) ; +test( macro , '94906266' , 29 , '3272629' , '25' ) ; +test( macro , '-94906266' , 29 , '-3272630' , '4' ) ; +test( macro , '94906266' , -29 , '-3272630' , '-4' ) ; +test( macro , '-94906266' , -29 , '3272629' , '-25' ) ; +test( macro , '94906266' , 1234 , '76909' , '560' ) ; +test( macro , '-94906266' , 1234 , '-76910' , '674' ) ; +test( macro , '94906266' , -1234 , '-76910' , '-674' ) ; +test( macro , '-94906266' , -1234 , '76909' , '-560' ) ; +test( macro , '94906266' , 5678 , '16714' , '4174' ) ; +test( macro , '-94906266' , 5678 , '-16715' , '1504' ) ; +test( macro , '94906266' , -5678 , '-16715' , '-1504' ) ; +test( macro , '-94906266' , -5678 , '16714' , '-4174' ) ; +test( macro , '94906266' , 94906265 , '1' , '1' ) ; +test( macro , '-94906266' , 94906265 , '-2' , '94906264' ) ; +test( macro , '94906266' , -94906265 , '-2' , '-94906264' ) ; +test( macro , '-94906266' , -94906265 , '1' , '-1' ) ; +test( macro , '94906266' , 94906266 , '1' , '0' ) ; +test( macro , '-94906266' , 94906266 , '-1' , '0' ) ; +test( macro , '94906266' , -94906266 , '-1' , '0' ) ; +test( macro , '-94906266' , -94906266 , '1' , '0' ) ; +test( macro , '94906266' , 1073741824 , '0' , '94906266' ) ; +test( macro , '-94906266' , 1073741824 , '-1' , '978835558' ) ; +test( macro , '94906266' , -1073741824 , '-1' , '-978835558' ) ; +test( macro , '-94906266' , -1073741824 , '0' , '-94906266' ) ; +test( macro , '94906266' , 51676101935731 , '0' , '94906266' ) ; +test( macro , '-94906266' , 51676101935731 , '-1' , '51676007029465' ) ; +test( macro , '94906266' , -51676101935731 , '-1' , '-51676007029465' ) ; +test( macro , '-94906266' , -51676101935731 , '0' , '-94906266' ) ; test( macro , '1073741824' , 1 , '1073741824' , '0' ) ; test( macro , '-1073741824' , 1 , '-1073741824' , '0' ) ; test( macro , '1073741824' , -1 , '-1073741824' , '0' ) ; @@ -731,6 +955,14 @@ test( macro , '1073741824' , 5678 , '189105' , '3634' ) ; test( macro , '-1073741824' , 5678 , '-189106' , '2044' ) ; test( macro , '1073741824' , -5678 , '-189106' , '-2044' ) ; test( macro , '-1073741824' , -5678 , '189105' , '-3634' ) ; +test( macro , '1073741824' , 94906265 , '11' , '29772909' ) ; +test( macro , '-1073741824' , 94906265 , '-12' , '65133356' ) ; +test( macro , '1073741824' , -94906265 , '-12' , '-65133356' ) ; +test( macro , '-1073741824' , -94906265 , '11' , '-29772909' ) ; +test( macro , '1073741824' , 94906266 , '11' , '29772898' ) ; +test( macro , '-1073741824' , 94906266 , '-12' , '65133368' ) ; +test( macro , '1073741824' , -94906266 , '-12' , '-65133368' ) ; +test( macro , '-1073741824' , -94906266 , '11' , '-29772898' ) ; test( macro , '1073741824' , 1073741824 , '1' , '0' ) ; test( macro , '-1073741824' , 1073741824 , '-1' , '0' ) ; test( macro , '1073741824' , -1073741824 , '-1' , '0' ) ; @@ -787,6 +1019,14 @@ test( macro , '51676101935731' , 5678 , '9101109886' , '3023' ) ; test( macro , '-51676101935731' , 5678 , '-9101109887' , '2655' ) ; test( macro , '51676101935731' , -5678 , '-9101109887' , '-2655' ) ; test( macro , '-51676101935731' , -5678 , '9101109886' , '-3023' ) ; +test( macro , '51676101935731' , 94906265 , '544496' , '20268291' ) ; +test( macro , '-51676101935731' , 94906265 , '-544497' , '74637974' ) ; +test( macro , '51676101935731' , -94906265 , '-544497' , '-74637974' ) ; +test( macro , '-51676101935731' , -94906265 , '544496' , '-20268291' ) ; +test( macro , '51676101935731' , 94906266 , '544496' , '19723795' ) ; +test( macro , '-51676101935731' , 94906266 , '-544497' , '75182471' ) ; +test( macro , '51676101935731' , -94906266 , '-544497' , '-75182471' ) ; +test( macro , '-51676101935731' , -94906266 , '544496' , '-19723795' ) ; test( macro , '51676101935731' , 1073741824 , '48127' , '129172083' ) ; test( macro , '-51676101935731' , 1073741824 , '-48128' , '944569741' ) ; test( macro , '51676101935731' , -1073741824 , '-48128' , '-944569741' ) ; @@ -843,6 +1083,14 @@ test( macro , '717897987691852588770249' , 5678 , '126435010160593974774' , '347 test( macro , '-717897987691852588770249' , 5678 , '-126435010160593974775' , '2201' ) ; test( macro , '717897987691852588770249' , -5678 , '-126435010160593974775' , '-2201' ) ; test( macro , '-717897987691852588770249' , -5678 , '126435010160593974774' , '-3477' ) ; +test( macro , '717897987691852588770249' , 94906265 , '7564284483135571' , '56517934' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-7564284483135572' , '38388331' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-7564284483135572' , '-38388331' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '7564284483135571' , '-56517934' ) ; +test( macro , '717897987691852588770249' , 94906266 , '7564284403432883' , '81625371' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-7564284403432884' , '13280895' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-7564284403432884' , '-13280895' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '7564284403432883' , '-81625371' ) ; test( macro , '717897987691852588770249' , 1073741824 , '668594602208447' , '278782921' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-668594602208448' , '794958903' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-668594602208448' , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/idivn.js b/test/src/integer/arithmetic/idivn.js index 2b469d4..d987c4f 100644 --- a/test/src/integer/arithmetic/idivn.js +++ b/test/src/integer/arithmetic/idivn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '0' ) ; test( macro , '-1' , 5678 , '-1' ) ; test( macro , '1' , -5678 , '-1' ) ; test( macro , '-1' , -5678 , '0' ) ; +test( macro , '1' , 94906265 , '0' ) ; +test( macro , '-1' , 94906265 , '-1' ) ; +test( macro , '1' , -94906265 , '-1' ) ; +test( macro , '-1' , -94906265 , '0' ) ; +test( macro , '1' , 94906266 , '0' ) ; +test( macro , '-1' , 94906266 , '-1' ) ; +test( macro , '1' , -94906266 , '-1' ) ; +test( macro , '-1' , -94906266 , '0' ) ; test( macro , '1' , 1073741824 , '0' ) ; test( macro , '-1' , 1073741824 , '-1' ) ; test( macro , '1' , -1073741824 , '-1' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '0' ) ; test( macro , '-3' , 5678 , '-1' ) ; test( macro , '3' , -5678 , '-1' ) ; test( macro , '-3' , -5678 , '0' ) ; +test( macro , '3' , 94906265 , '0' ) ; +test( macro , '-3' , 94906265 , '-1' ) ; +test( macro , '3' , -94906265 , '-1' ) ; +test( macro , '-3' , -94906265 , '0' ) ; +test( macro , '3' , 94906266 , '0' ) ; +test( macro , '-3' , 94906266 , '-1' ) ; +test( macro , '3' , -94906266 , '-1' ) ; +test( macro , '-3' , -94906266 , '0' ) ; test( macro , '3' , 1073741824 , '0' ) ; test( macro , '-3' , 1073741824 , '-1' ) ; test( macro , '3' , -1073741824 , '-1' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '0' ) ; test( macro , '-7' , 5678 , '-1' ) ; test( macro , '7' , -5678 , '-1' ) ; test( macro , '-7' , -5678 , '0' ) ; +test( macro , '7' , 94906265 , '0' ) ; +test( macro , '-7' , 94906265 , '-1' ) ; +test( macro , '7' , -94906265 , '-1' ) ; +test( macro , '-7' , -94906265 , '0' ) ; +test( macro , '7' , 94906266 , '0' ) ; +test( macro , '-7' , 94906266 , '-1' ) ; +test( macro , '7' , -94906266 , '-1' ) ; +test( macro , '-7' , -94906266 , '0' ) ; test( macro , '7' , 1073741824 , '0' ) ; test( macro , '-7' , 1073741824 , '-1' ) ; test( macro , '7' , -1073741824 , '-1' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '0' ) ; test( macro , '-9' , 5678 , '-1' ) ; test( macro , '9' , -5678 , '-1' ) ; test( macro , '-9' , -5678 , '0' ) ; +test( macro , '9' , 94906265 , '0' ) ; +test( macro , '-9' , 94906265 , '-1' ) ; +test( macro , '9' , -94906265 , '-1' ) ; +test( macro , '-9' , -94906265 , '0' ) ; +test( macro , '9' , 94906266 , '0' ) ; +test( macro , '-9' , 94906266 , '-1' ) ; +test( macro , '9' , -94906266 , '-1' ) ; +test( macro , '-9' , -94906266 , '0' ) ; test( macro , '9' , 1073741824 , '0' ) ; test( macro , '-9' , 1073741824 , '-1' ) ; test( macro , '9' , -1073741824 , '-1' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '0' ) ; test( macro , '-11' , 5678 , '-1' ) ; test( macro , '11' , -5678 , '-1' ) ; test( macro , '-11' , -5678 , '0' ) ; +test( macro , '11' , 94906265 , '0' ) ; +test( macro , '-11' , 94906265 , '-1' ) ; +test( macro , '11' , -94906265 , '-1' ) ; +test( macro , '-11' , -94906265 , '0' ) ; +test( macro , '11' , 94906266 , '0' ) ; +test( macro , '-11' , 94906266 , '-1' ) ; +test( macro , '11' , -94906266 , '-1' ) ; +test( macro , '-11' , -94906266 , '0' ) ; test( macro , '11' , 1073741824 , '0' ) ; test( macro , '-11' , 1073741824 , '-1' ) ; test( macro , '11' , -1073741824 , '-1' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '0' ) ; test( macro , '-17' , 5678 , '-1' ) ; test( macro , '17' , -5678 , '-1' ) ; test( macro , '-17' , -5678 , '0' ) ; +test( macro , '17' , 94906265 , '0' ) ; +test( macro , '-17' , 94906265 , '-1' ) ; +test( macro , '17' , -94906265 , '-1' ) ; +test( macro , '-17' , -94906265 , '0' ) ; +test( macro , '17' , 94906266 , '0' ) ; +test( macro , '-17' , 94906266 , '-1' ) ; +test( macro , '17' , -94906266 , '-1' ) ; +test( macro , '-17' , -94906266 , '0' ) ; test( macro , '17' , 1073741824 , '0' ) ; test( macro , '-17' , 1073741824 , '-1' ) ; test( macro , '17' , -1073741824 , '-1' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '0' ) ; test( macro , '-22' , 5678 , '-1' ) ; test( macro , '22' , -5678 , '-1' ) ; test( macro , '-22' , -5678 , '0' ) ; +test( macro , '22' , 94906265 , '0' ) ; +test( macro , '-22' , 94906265 , '-1' ) ; +test( macro , '22' , -94906265 , '-1' ) ; +test( macro , '-22' , -94906265 , '0' ) ; +test( macro , '22' , 94906266 , '0' ) ; +test( macro , '-22' , 94906266 , '-1' ) ; +test( macro , '22' , -94906266 , '-1' ) ; +test( macro , '-22' , -94906266 , '0' ) ; test( macro , '22' , 1073741824 , '0' ) ; test( macro , '-22' , 1073741824 , '-1' ) ; test( macro , '22' , -1073741824 , '-1' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '0' ) ; test( macro , '-24' , 5678 , '-1' ) ; test( macro , '24' , -5678 , '-1' ) ; test( macro , '-24' , -5678 , '0' ) ; +test( macro , '24' , 94906265 , '0' ) ; +test( macro , '-24' , 94906265 , '-1' ) ; +test( macro , '24' , -94906265 , '-1' ) ; +test( macro , '-24' , -94906265 , '0' ) ; +test( macro , '24' , 94906266 , '0' ) ; +test( macro , '-24' , 94906266 , '-1' ) ; +test( macro , '24' , -94906266 , '-1' ) ; +test( macro , '-24' , -94906266 , '0' ) ; test( macro , '24' , 1073741824 , '0' ) ; test( macro , '-24' , 1073741824 , '-1' ) ; test( macro , '24' , -1073741824 , '-1' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '0' ) ; test( macro , '-27' , 5678 , '-1' ) ; test( macro , '27' , -5678 , '-1' ) ; test( macro , '-27' , -5678 , '0' ) ; +test( macro , '27' , 94906265 , '0' ) ; +test( macro , '-27' , 94906265 , '-1' ) ; +test( macro , '27' , -94906265 , '-1' ) ; +test( macro , '-27' , -94906265 , '0' ) ; +test( macro , '27' , 94906266 , '0' ) ; +test( macro , '-27' , 94906266 , '-1' ) ; +test( macro , '27' , -94906266 , '-1' ) ; +test( macro , '-27' , -94906266 , '0' ) ; test( macro , '27' , 1073741824 , '0' ) ; test( macro , '-27' , 1073741824 , '-1' ) ; test( macro , '27' , -1073741824 , '-1' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '0' ) ; test( macro , '-29' , 5678 , '-1' ) ; test( macro , '29' , -5678 , '-1' ) ; test( macro , '-29' , -5678 , '0' ) ; +test( macro , '29' , 94906265 , '0' ) ; +test( macro , '-29' , 94906265 , '-1' ) ; +test( macro , '29' , -94906265 , '-1' ) ; +test( macro , '-29' , -94906265 , '0' ) ; +test( macro , '29' , 94906266 , '0' ) ; +test( macro , '-29' , 94906266 , '-1' ) ; +test( macro , '29' , -94906266 , '-1' ) ; +test( macro , '-29' , -94906266 , '0' ) ; test( macro , '29' , 1073741824 , '0' ) ; test( macro , '-29' , 1073741824 , '-1' ) ; test( macro , '29' , -1073741824 , '-1' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '0' ) ; test( macro , '-1234' , 5678 , '-1' ) ; test( macro , '1234' , -5678 , '-1' ) ; test( macro , '-1234' , -5678 , '0' ) ; +test( macro , '1234' , 94906265 , '0' ) ; +test( macro , '-1234' , 94906265 , '-1' ) ; +test( macro , '1234' , -94906265 , '-1' ) ; +test( macro , '-1234' , -94906265 , '0' ) ; +test( macro , '1234' , 94906266 , '0' ) ; +test( macro , '-1234' , 94906266 , '-1' ) ; +test( macro , '1234' , -94906266 , '-1' ) ; +test( macro , '-1234' , -94906266 , '0' ) ; test( macro , '1234' , 1073741824 , '0' ) ; test( macro , '-1234' , 1073741824 , '-1' ) ; test( macro , '1234' , -1073741824 , '-1' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '1' ) ; test( macro , '-5678' , 5678 , '-1' ) ; test( macro , '5678' , -5678 , '-1' ) ; test( macro , '-5678' , -5678 , '1' ) ; +test( macro , '5678' , 94906265 , '0' ) ; +test( macro , '-5678' , 94906265 , '-1' ) ; +test( macro , '5678' , -94906265 , '-1' ) ; +test( macro , '-5678' , -94906265 , '0' ) ; +test( macro , '5678' , 94906266 , '0' ) ; +test( macro , '-5678' , 94906266 , '-1' ) ; +test( macro , '5678' , -94906266 , '-1' ) ; +test( macro , '-5678' , -94906266 , '0' ) ; test( macro , '5678' , 1073741824 , '0' ) ; test( macro , '-5678' , 1073741824 , '-1' ) ; test( macro , '5678' , -1073741824 , '-1' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '0' ) ; test( macro , '-5678' , 51676101935731 , '-1' ) ; test( macro , '5678' , -51676101935731 , '-1' ) ; test( macro , '-5678' , -51676101935731 , '0' ) ; +test( macro , '94906265' , 1 , '94906265' ) ; +test( macro , '-94906265' , 1 , '-94906265' ) ; +test( macro , '94906265' , -1 , '-94906265' ) ; +test( macro , '-94906265' , -1 , '94906265' ) ; +test( macro , '94906265' , 3 , '31635421' ) ; +test( macro , '-94906265' , 3 , '-31635422' ) ; +test( macro , '94906265' , -3 , '-31635422' ) ; +test( macro , '-94906265' , -3 , '31635421' ) ; +test( macro , '94906265' , 7 , '13558037' ) ; +test( macro , '-94906265' , 7 , '-13558038' ) ; +test( macro , '94906265' , -7 , '-13558038' ) ; +test( macro , '-94906265' , -7 , '13558037' ) ; +test( macro , '94906265' , 9 , '10545140' ) ; +test( macro , '-94906265' , 9 , '-10545141' ) ; +test( macro , '94906265' , -9 , '-10545141' ) ; +test( macro , '-94906265' , -9 , '10545140' ) ; +test( macro , '94906265' , 11 , '8627842' ) ; +test( macro , '-94906265' , 11 , '-8627843' ) ; +test( macro , '94906265' , -11 , '-8627843' ) ; +test( macro , '-94906265' , -11 , '8627842' ) ; +test( macro , '94906265' , 17 , '5582721' ) ; +test( macro , '-94906265' , 17 , '-5582722' ) ; +test( macro , '94906265' , -17 , '-5582722' ) ; +test( macro , '-94906265' , -17 , '5582721' ) ; +test( macro , '94906265' , 22 , '4313921' ) ; +test( macro , '-94906265' , 22 , '-4313922' ) ; +test( macro , '94906265' , -22 , '-4313922' ) ; +test( macro , '-94906265' , -22 , '4313921' ) ; +test( macro , '94906265' , 24 , '3954427' ) ; +test( macro , '-94906265' , 24 , '-3954428' ) ; +test( macro , '94906265' , -24 , '-3954428' ) ; +test( macro , '-94906265' , -24 , '3954427' ) ; +test( macro , '94906265' , 27 , '3515046' ) ; +test( macro , '-94906265' , 27 , '-3515047' ) ; +test( macro , '94906265' , -27 , '-3515047' ) ; +test( macro , '-94906265' , -27 , '3515046' ) ; +test( macro , '94906265' , 29 , '3272629' ) ; +test( macro , '-94906265' , 29 , '-3272630' ) ; +test( macro , '94906265' , -29 , '-3272630' ) ; +test( macro , '-94906265' , -29 , '3272629' ) ; +test( macro , '94906265' , 1234 , '76909' ) ; +test( macro , '-94906265' , 1234 , '-76910' ) ; +test( macro , '94906265' , -1234 , '-76910' ) ; +test( macro , '-94906265' , -1234 , '76909' ) ; +test( macro , '94906265' , 5678 , '16714' ) ; +test( macro , '-94906265' , 5678 , '-16715' ) ; +test( macro , '94906265' , -5678 , '-16715' ) ; +test( macro , '-94906265' , -5678 , '16714' ) ; +test( macro , '94906265' , 94906265 , '1' ) ; +test( macro , '-94906265' , 94906265 , '-1' ) ; +test( macro , '94906265' , -94906265 , '-1' ) ; +test( macro , '-94906265' , -94906265 , '1' ) ; +test( macro , '94906265' , 94906266 , '0' ) ; +test( macro , '-94906265' , 94906266 , '-1' ) ; +test( macro , '94906265' , -94906266 , '-1' ) ; +test( macro , '-94906265' , -94906266 , '0' ) ; +test( macro , '94906265' , 1073741824 , '0' ) ; +test( macro , '-94906265' , 1073741824 , '-1' ) ; +test( macro , '94906265' , -1073741824 , '-1' ) ; +test( macro , '-94906265' , -1073741824 , '0' ) ; +test( macro , '94906265' , 51676101935731 , '0' ) ; +test( macro , '-94906265' , 51676101935731 , '-1' ) ; +test( macro , '94906265' , -51676101935731 , '-1' ) ; +test( macro , '-94906265' , -51676101935731 , '0' ) ; +test( macro , '94906266' , 1 , '94906266' ) ; +test( macro , '-94906266' , 1 , '-94906266' ) ; +test( macro , '94906266' , -1 , '-94906266' ) ; +test( macro , '-94906266' , -1 , '94906266' ) ; +test( macro , '94906266' , 3 , '31635422' ) ; +test( macro , '-94906266' , 3 , '-31635422' ) ; +test( macro , '94906266' , -3 , '-31635422' ) ; +test( macro , '-94906266' , -3 , '31635422' ) ; +test( macro , '94906266' , 7 , '13558038' ) ; +test( macro , '-94906266' , 7 , '-13558038' ) ; +test( macro , '94906266' , -7 , '-13558038' ) ; +test( macro , '-94906266' , -7 , '13558038' ) ; +test( macro , '94906266' , 9 , '10545140' ) ; +test( macro , '-94906266' , 9 , '-10545141' ) ; +test( macro , '94906266' , -9 , '-10545141' ) ; +test( macro , '-94906266' , -9 , '10545140' ) ; +test( macro , '94906266' , 11 , '8627842' ) ; +test( macro , '-94906266' , 11 , '-8627843' ) ; +test( macro , '94906266' , -11 , '-8627843' ) ; +test( macro , '-94906266' , -11 , '8627842' ) ; +test( macro , '94906266' , 17 , '5582721' ) ; +test( macro , '-94906266' , 17 , '-5582722' ) ; +test( macro , '94906266' , -17 , '-5582722' ) ; +test( macro , '-94906266' , -17 , '5582721' ) ; +test( macro , '94906266' , 22 , '4313921' ) ; +test( macro , '-94906266' , 22 , '-4313922' ) ; +test( macro , '94906266' , -22 , '-4313922' ) ; +test( macro , '-94906266' , -22 , '4313921' ) ; +test( macro , '94906266' , 24 , '3954427' ) ; +test( macro , '-94906266' , 24 , '-3954428' ) ; +test( macro , '94906266' , -24 , '-3954428' ) ; +test( macro , '-94906266' , -24 , '3954427' ) ; +test( macro , '94906266' , 27 , '3515046' ) ; +test( macro , '-94906266' , 27 , '-3515047' ) ; +test( macro , '94906266' , -27 , '-3515047' ) ; +test( macro , '-94906266' , -27 , '3515046' ) ; +test( macro , '94906266' , 29 , '3272629' ) ; +test( macro , '-94906266' , 29 , '-3272630' ) ; +test( macro , '94906266' , -29 , '-3272630' ) ; +test( macro , '-94906266' , -29 , '3272629' ) ; +test( macro , '94906266' , 1234 , '76909' ) ; +test( macro , '-94906266' , 1234 , '-76910' ) ; +test( macro , '94906266' , -1234 , '-76910' ) ; +test( macro , '-94906266' , -1234 , '76909' ) ; +test( macro , '94906266' , 5678 , '16714' ) ; +test( macro , '-94906266' , 5678 , '-16715' ) ; +test( macro , '94906266' , -5678 , '-16715' ) ; +test( macro , '-94906266' , -5678 , '16714' ) ; +test( macro , '94906266' , 94906265 , '1' ) ; +test( macro , '-94906266' , 94906265 , '-2' ) ; +test( macro , '94906266' , -94906265 , '-2' ) ; +test( macro , '-94906266' , -94906265 , '1' ) ; +test( macro , '94906266' , 94906266 , '1' ) ; +test( macro , '-94906266' , 94906266 , '-1' ) ; +test( macro , '94906266' , -94906266 , '-1' ) ; +test( macro , '-94906266' , -94906266 , '1' ) ; +test( macro , '94906266' , 1073741824 , '0' ) ; +test( macro , '-94906266' , 1073741824 , '-1' ) ; +test( macro , '94906266' , -1073741824 , '-1' ) ; +test( macro , '-94906266' , -1073741824 , '0' ) ; +test( macro , '94906266' , 51676101935731 , '0' ) ; +test( macro , '-94906266' , 51676101935731 , '-1' ) ; +test( macro , '94906266' , -51676101935731 , '-1' ) ; +test( macro , '-94906266' , -51676101935731 , '0' ) ; test( macro , '1073741824' , 1 , '1073741824' ) ; test( macro , '-1073741824' , 1 , '-1073741824' ) ; test( macro , '1073741824' , -1 , '-1073741824' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '189105' ) ; test( macro , '-1073741824' , 5678 , '-189106' ) ; test( macro , '1073741824' , -5678 , '-189106' ) ; test( macro , '-1073741824' , -5678 , '189105' ) ; +test( macro , '1073741824' , 94906265 , '11' ) ; +test( macro , '-1073741824' , 94906265 , '-12' ) ; +test( macro , '1073741824' , -94906265 , '-12' ) ; +test( macro , '-1073741824' , -94906265 , '11' ) ; +test( macro , '1073741824' , 94906266 , '11' ) ; +test( macro , '-1073741824' , 94906266 , '-12' ) ; +test( macro , '1073741824' , -94906266 , '-12' ) ; +test( macro , '-1073741824' , -94906266 , '11' ) ; test( macro , '1073741824' , 1073741824 , '1' ) ; test( macro , '-1073741824' , 1073741824 , '-1' ) ; test( macro , '1073741824' , -1073741824 , '-1' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '9101109886' ) ; test( macro , '-51676101935731' , 5678 , '-9101109887' ) ; test( macro , '51676101935731' , -5678 , '-9101109887' ) ; test( macro , '-51676101935731' , -5678 , '9101109886' ) ; +test( macro , '51676101935731' , 94906265 , '544496' ) ; +test( macro , '-51676101935731' , 94906265 , '-544497' ) ; +test( macro , '51676101935731' , -94906265 , '-544497' ) ; +test( macro , '-51676101935731' , -94906265 , '544496' ) ; +test( macro , '51676101935731' , 94906266 , '544496' ) ; +test( macro , '-51676101935731' , 94906266 , '-544497' ) ; +test( macro , '51676101935731' , -94906266 , '-544497' ) ; +test( macro , '-51676101935731' , -94906266 , '544496' ) ; test( macro , '51676101935731' , 1073741824 , '48127' ) ; test( macro , '-51676101935731' , 1073741824 , '-48128' ) ; test( macro , '51676101935731' , -1073741824 , '-48128' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '126435010160593974774' ) ; test( macro , '-717897987691852588770249' , 5678 , '-126435010160593974775' ) ; test( macro , '717897987691852588770249' , -5678 , '-126435010160593974775' ) ; test( macro , '-717897987691852588770249' , -5678 , '126435010160593974774' ) ; +test( macro , '717897987691852588770249' , 94906265 , '7564284483135571' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-7564284483135572' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-7564284483135572' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '7564284483135571' ) ; +test( macro , '717897987691852588770249' , 94906266 , '7564284403432883' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-7564284403432884' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-7564284403432884' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '7564284403432883' ) ; test( macro , '717897987691852588770249' , 1073741824 , '668594602208447' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-668594602208448' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-668594602208448' ) ; diff --git a/test/src/integer/arithmetic/imod.js b/test/src/integer/arithmetic/imod.js index a3dd2d6..6daec58 100644 --- a/test/src/integer/arithmetic/imod.js +++ b/test/src/integer/arithmetic/imod.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '1' ) ; test( macro , '-1' , '5678' , '5677' ) ; test( macro , '1' , '-5678' , '-5677' ) ; test( macro , '-1' , '-5678' , '-1' ) ; +test( macro , '1' , '94906265' , '1' ) ; +test( macro , '-1' , '94906265' , '94906264' ) ; +test( macro , '1' , '-94906265' , '-94906264' ) ; +test( macro , '-1' , '-94906265' , '-1' ) ; +test( macro , '1' , '94906266' , '1' ) ; +test( macro , '-1' , '94906266' , '94906265' ) ; +test( macro , '1' , '-94906266' , '-94906265' ) ; +test( macro , '-1' , '-94906266' , '-1' ) ; test( macro , '1' , '1073741824' , '1' ) ; test( macro , '-1' , '1073741824' , '1073741823' ) ; test( macro , '1' , '-1073741824' , '-1073741823' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '3' ) ; test( macro , '-3' , '5678' , '5675' ) ; test( macro , '3' , '-5678' , '-5675' ) ; test( macro , '-3' , '-5678' , '-3' ) ; +test( macro , '3' , '94906265' , '3' ) ; +test( macro , '-3' , '94906265' , '94906262' ) ; +test( macro , '3' , '-94906265' , '-94906262' ) ; +test( macro , '-3' , '-94906265' , '-3' ) ; +test( macro , '3' , '94906266' , '3' ) ; +test( macro , '-3' , '94906266' , '94906263' ) ; +test( macro , '3' , '-94906266' , '-94906263' ) ; +test( macro , '-3' , '-94906266' , '-3' ) ; test( macro , '3' , '1073741824' , '3' ) ; test( macro , '-3' , '1073741824' , '1073741821' ) ; test( macro , '3' , '-1073741824' , '-1073741821' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '7' ) ; test( macro , '-7' , '5678' , '5671' ) ; test( macro , '7' , '-5678' , '-5671' ) ; test( macro , '-7' , '-5678' , '-7' ) ; +test( macro , '7' , '94906265' , '7' ) ; +test( macro , '-7' , '94906265' , '94906258' ) ; +test( macro , '7' , '-94906265' , '-94906258' ) ; +test( macro , '-7' , '-94906265' , '-7' ) ; +test( macro , '7' , '94906266' , '7' ) ; +test( macro , '-7' , '94906266' , '94906259' ) ; +test( macro , '7' , '-94906266' , '-94906259' ) ; +test( macro , '-7' , '-94906266' , '-7' ) ; test( macro , '7' , '1073741824' , '7' ) ; test( macro , '-7' , '1073741824' , '1073741817' ) ; test( macro , '7' , '-1073741824' , '-1073741817' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '9' ) ; test( macro , '-9' , '5678' , '5669' ) ; test( macro , '9' , '-5678' , '-5669' ) ; test( macro , '-9' , '-5678' , '-9' ) ; +test( macro , '9' , '94906265' , '9' ) ; +test( macro , '-9' , '94906265' , '94906256' ) ; +test( macro , '9' , '-94906265' , '-94906256' ) ; +test( macro , '-9' , '-94906265' , '-9' ) ; +test( macro , '9' , '94906266' , '9' ) ; +test( macro , '-9' , '94906266' , '94906257' ) ; +test( macro , '9' , '-94906266' , '-94906257' ) ; +test( macro , '-9' , '-94906266' , '-9' ) ; test( macro , '9' , '1073741824' , '9' ) ; test( macro , '-9' , '1073741824' , '1073741815' ) ; test( macro , '9' , '-1073741824' , '-1073741815' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '11' ) ; test( macro , '-11' , '5678' , '5667' ) ; test( macro , '11' , '-5678' , '-5667' ) ; test( macro , '-11' , '-5678' , '-11' ) ; +test( macro , '11' , '94906265' , '11' ) ; +test( macro , '-11' , '94906265' , '94906254' ) ; +test( macro , '11' , '-94906265' , '-94906254' ) ; +test( macro , '-11' , '-94906265' , '-11' ) ; +test( macro , '11' , '94906266' , '11' ) ; +test( macro , '-11' , '94906266' , '94906255' ) ; +test( macro , '11' , '-94906266' , '-94906255' ) ; +test( macro , '-11' , '-94906266' , '-11' ) ; test( macro , '11' , '1073741824' , '11' ) ; test( macro , '-11' , '1073741824' , '1073741813' ) ; test( macro , '11' , '-1073741824' , '-1073741813' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '17' ) ; test( macro , '-17' , '5678' , '5661' ) ; test( macro , '17' , '-5678' , '-5661' ) ; test( macro , '-17' , '-5678' , '-17' ) ; +test( macro , '17' , '94906265' , '17' ) ; +test( macro , '-17' , '94906265' , '94906248' ) ; +test( macro , '17' , '-94906265' , '-94906248' ) ; +test( macro , '-17' , '-94906265' , '-17' ) ; +test( macro , '17' , '94906266' , '17' ) ; +test( macro , '-17' , '94906266' , '94906249' ) ; +test( macro , '17' , '-94906266' , '-94906249' ) ; +test( macro , '-17' , '-94906266' , '-17' ) ; test( macro , '17' , '1073741824' , '17' ) ; test( macro , '-17' , '1073741824' , '1073741807' ) ; test( macro , '17' , '-1073741824' , '-1073741807' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '22' ) ; test( macro , '-22' , '5678' , '5656' ) ; test( macro , '22' , '-5678' , '-5656' ) ; test( macro , '-22' , '-5678' , '-22' ) ; +test( macro , '22' , '94906265' , '22' ) ; +test( macro , '-22' , '94906265' , '94906243' ) ; +test( macro , '22' , '-94906265' , '-94906243' ) ; +test( macro , '-22' , '-94906265' , '-22' ) ; +test( macro , '22' , '94906266' , '22' ) ; +test( macro , '-22' , '94906266' , '94906244' ) ; +test( macro , '22' , '-94906266' , '-94906244' ) ; +test( macro , '-22' , '-94906266' , '-22' ) ; test( macro , '22' , '1073741824' , '22' ) ; test( macro , '-22' , '1073741824' , '1073741802' ) ; test( macro , '22' , '-1073741824' , '-1073741802' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '24' ) ; test( macro , '-24' , '5678' , '5654' ) ; test( macro , '24' , '-5678' , '-5654' ) ; test( macro , '-24' , '-5678' , '-24' ) ; +test( macro , '24' , '94906265' , '24' ) ; +test( macro , '-24' , '94906265' , '94906241' ) ; +test( macro , '24' , '-94906265' , '-94906241' ) ; +test( macro , '-24' , '-94906265' , '-24' ) ; +test( macro , '24' , '94906266' , '24' ) ; +test( macro , '-24' , '94906266' , '94906242' ) ; +test( macro , '24' , '-94906266' , '-94906242' ) ; +test( macro , '-24' , '-94906266' , '-24' ) ; test( macro , '24' , '1073741824' , '24' ) ; test( macro , '-24' , '1073741824' , '1073741800' ) ; test( macro , '24' , '-1073741824' , '-1073741800' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '27' ) ; test( macro , '-27' , '5678' , '5651' ) ; test( macro , '27' , '-5678' , '-5651' ) ; test( macro , '-27' , '-5678' , '-27' ) ; +test( macro , '27' , '94906265' , '27' ) ; +test( macro , '-27' , '94906265' , '94906238' ) ; +test( macro , '27' , '-94906265' , '-94906238' ) ; +test( macro , '-27' , '-94906265' , '-27' ) ; +test( macro , '27' , '94906266' , '27' ) ; +test( macro , '-27' , '94906266' , '94906239' ) ; +test( macro , '27' , '-94906266' , '-94906239' ) ; +test( macro , '-27' , '-94906266' , '-27' ) ; test( macro , '27' , '1073741824' , '27' ) ; test( macro , '-27' , '1073741824' , '1073741797' ) ; test( macro , '27' , '-1073741824' , '-1073741797' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '29' ) ; test( macro , '-29' , '5678' , '5649' ) ; test( macro , '29' , '-5678' , '-5649' ) ; test( macro , '-29' , '-5678' , '-29' ) ; +test( macro , '29' , '94906265' , '29' ) ; +test( macro , '-29' , '94906265' , '94906236' ) ; +test( macro , '29' , '-94906265' , '-94906236' ) ; +test( macro , '-29' , '-94906265' , '-29' ) ; +test( macro , '29' , '94906266' , '29' ) ; +test( macro , '-29' , '94906266' , '94906237' ) ; +test( macro , '29' , '-94906266' , '-94906237' ) ; +test( macro , '-29' , '-94906266' , '-29' ) ; test( macro , '29' , '1073741824' , '29' ) ; test( macro , '-29' , '1073741824' , '1073741795' ) ; test( macro , '29' , '-1073741824' , '-1073741795' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '1234' ) ; test( macro , '-1234' , '5678' , '4444' ) ; test( macro , '1234' , '-5678' , '-4444' ) ; test( macro , '-1234' , '-5678' , '-1234' ) ; +test( macro , '1234' , '94906265' , '1234' ) ; +test( macro , '-1234' , '94906265' , '94905031' ) ; +test( macro , '1234' , '-94906265' , '-94905031' ) ; +test( macro , '-1234' , '-94906265' , '-1234' ) ; +test( macro , '1234' , '94906266' , '1234' ) ; +test( macro , '-1234' , '94906266' , '94905032' ) ; +test( macro , '1234' , '-94906266' , '-94905032' ) ; +test( macro , '-1234' , '-94906266' , '-1234' ) ; test( macro , '1234' , '1073741824' , '1234' ) ; test( macro , '-1234' , '1073741824' , '1073740590' ) ; test( macro , '1234' , '-1073741824' , '-1073740590' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '0' ) ; test( macro , '-5678' , '5678' , '0' ) ; test( macro , '5678' , '-5678' , '0' ) ; test( macro , '-5678' , '-5678' , '0' ) ; +test( macro , '5678' , '94906265' , '5678' ) ; +test( macro , '-5678' , '94906265' , '94900587' ) ; +test( macro , '5678' , '-94906265' , '-94900587' ) ; +test( macro , '-5678' , '-94906265' , '-5678' ) ; +test( macro , '5678' , '94906266' , '5678' ) ; +test( macro , '-5678' , '94906266' , '94900588' ) ; +test( macro , '5678' , '-94906266' , '-94900588' ) ; +test( macro , '-5678' , '-94906266' , '-5678' ) ; test( macro , '5678' , '1073741824' , '5678' ) ; test( macro , '-5678' , '1073741824' , '1073736146' ) ; test( macro , '5678' , '-1073741824' , '-1073736146' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '5678' ) ; test( macro , '-5678' , '717897987691852588770249' , '717897987691852588764571' ) ; test( macro , '5678' , '-717897987691852588770249' , '-717897987691852588764571' ) ; test( macro , '-5678' , '-717897987691852588770249' , '-5678' ) ; +test( macro , '94906265' , '1' , '0' ) ; +test( macro , '-94906265' , '1' , '0' ) ; +test( macro , '94906265' , '-1' , '0' ) ; +test( macro , '-94906265' , '-1' , '0' ) ; +test( macro , '94906265' , '3' , '2' ) ; +test( macro , '-94906265' , '3' , '1' ) ; +test( macro , '94906265' , '-3' , '-1' ) ; +test( macro , '-94906265' , '-3' , '-2' ) ; +test( macro , '94906265' , '7' , '6' ) ; +test( macro , '-94906265' , '7' , '1' ) ; +test( macro , '94906265' , '-7' , '-1' ) ; +test( macro , '-94906265' , '-7' , '-6' ) ; +test( macro , '94906265' , '9' , '5' ) ; +test( macro , '-94906265' , '9' , '4' ) ; +test( macro , '94906265' , '-9' , '-4' ) ; +test( macro , '-94906265' , '-9' , '-5' ) ; +test( macro , '94906265' , '11' , '3' ) ; +test( macro , '-94906265' , '11' , '8' ) ; +test( macro , '94906265' , '-11' , '-8' ) ; +test( macro , '-94906265' , '-11' , '-3' ) ; +test( macro , '94906265' , '17' , '8' ) ; +test( macro , '-94906265' , '17' , '9' ) ; +test( macro , '94906265' , '-17' , '-9' ) ; +test( macro , '-94906265' , '-17' , '-8' ) ; +test( macro , '94906265' , '22' , '3' ) ; +test( macro , '-94906265' , '22' , '19' ) ; +test( macro , '94906265' , '-22' , '-19' ) ; +test( macro , '-94906265' , '-22' , '-3' ) ; +test( macro , '94906265' , '24' , '17' ) ; +test( macro , '-94906265' , '24' , '7' ) ; +test( macro , '94906265' , '-24' , '-7' ) ; +test( macro , '-94906265' , '-24' , '-17' ) ; +test( macro , '94906265' , '27' , '23' ) ; +test( macro , '-94906265' , '27' , '4' ) ; +test( macro , '94906265' , '-27' , '-4' ) ; +test( macro , '-94906265' , '-27' , '-23' ) ; +test( macro , '94906265' , '29' , '24' ) ; +test( macro , '-94906265' , '29' , '5' ) ; +test( macro , '94906265' , '-29' , '-5' ) ; +test( macro , '-94906265' , '-29' , '-24' ) ; +test( macro , '94906265' , '1234' , '559' ) ; +test( macro , '-94906265' , '1234' , '675' ) ; +test( macro , '94906265' , '-1234' , '-675' ) ; +test( macro , '-94906265' , '-1234' , '-559' ) ; +test( macro , '94906265' , '5678' , '4173' ) ; +test( macro , '-94906265' , '5678' , '1505' ) ; +test( macro , '94906265' , '-5678' , '-1505' ) ; +test( macro , '-94906265' , '-5678' , '-4173' ) ; +test( macro , '94906265' , '94906265' , '0' ) ; +test( macro , '-94906265' , '94906265' , '0' ) ; +test( macro , '94906265' , '-94906265' , '0' ) ; +test( macro , '-94906265' , '-94906265' , '0' ) ; +test( macro , '94906265' , '94906266' , '94906265' ) ; +test( macro , '-94906265' , '94906266' , '1' ) ; +test( macro , '94906265' , '-94906266' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '-94906265' ) ; +test( macro , '94906265' , '1073741824' , '94906265' ) ; +test( macro , '-94906265' , '1073741824' , '978835559' ) ; +test( macro , '94906265' , '-1073741824' , '-978835559' ) ; +test( macro , '-94906265' , '-1073741824' , '-94906265' ) ; +test( macro , '94906265' , '51676101935731' , '94906265' ) ; +test( macro , '-94906265' , '51676101935731' , '51676007029466' ) ; +test( macro , '94906265' , '-51676101935731' , '-51676007029466' ) ; +test( macro , '-94906265' , '-51676101935731' , '-94906265' ) ; +test( macro , '94906265' , '717897987691852588770249' , '94906265' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '717897987691852493863984' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '-94906265' ) ; +test( macro , '94906266' , '1' , '0' ) ; +test( macro , '-94906266' , '1' , '0' ) ; +test( macro , '94906266' , '-1' , '0' ) ; +test( macro , '-94906266' , '-1' , '0' ) ; +test( macro , '94906266' , '3' , '0' ) ; +test( macro , '-94906266' , '3' , '0' ) ; +test( macro , '94906266' , '-3' , '0' ) ; +test( macro , '-94906266' , '-3' , '0' ) ; +test( macro , '94906266' , '7' , '0' ) ; +test( macro , '-94906266' , '7' , '0' ) ; +test( macro , '94906266' , '-7' , '0' ) ; +test( macro , '-94906266' , '-7' , '0' ) ; +test( macro , '94906266' , '9' , '6' ) ; +test( macro , '-94906266' , '9' , '3' ) ; +test( macro , '94906266' , '-9' , '-3' ) ; +test( macro , '-94906266' , '-9' , '-6' ) ; +test( macro , '94906266' , '11' , '4' ) ; +test( macro , '-94906266' , '11' , '7' ) ; +test( macro , '94906266' , '-11' , '-7' ) ; +test( macro , '-94906266' , '-11' , '-4' ) ; +test( macro , '94906266' , '17' , '9' ) ; +test( macro , '-94906266' , '17' , '8' ) ; +test( macro , '94906266' , '-17' , '-8' ) ; +test( macro , '-94906266' , '-17' , '-9' ) ; +test( macro , '94906266' , '22' , '4' ) ; +test( macro , '-94906266' , '22' , '18' ) ; +test( macro , '94906266' , '-22' , '-18' ) ; +test( macro , '-94906266' , '-22' , '-4' ) ; +test( macro , '94906266' , '24' , '18' ) ; +test( macro , '-94906266' , '24' , '6' ) ; +test( macro , '94906266' , '-24' , '-6' ) ; +test( macro , '-94906266' , '-24' , '-18' ) ; +test( macro , '94906266' , '27' , '24' ) ; +test( macro , '-94906266' , '27' , '3' ) ; +test( macro , '94906266' , '-27' , '-3' ) ; +test( macro , '-94906266' , '-27' , '-24' ) ; +test( macro , '94906266' , '29' , '25' ) ; +test( macro , '-94906266' , '29' , '4' ) ; +test( macro , '94906266' , '-29' , '-4' ) ; +test( macro , '-94906266' , '-29' , '-25' ) ; +test( macro , '94906266' , '1234' , '560' ) ; +test( macro , '-94906266' , '1234' , '674' ) ; +test( macro , '94906266' , '-1234' , '-674' ) ; +test( macro , '-94906266' , '-1234' , '-560' ) ; +test( macro , '94906266' , '5678' , '4174' ) ; +test( macro , '-94906266' , '5678' , '1504' ) ; +test( macro , '94906266' , '-5678' , '-1504' ) ; +test( macro , '-94906266' , '-5678' , '-4174' ) ; +test( macro , '94906266' , '94906265' , '1' ) ; +test( macro , '-94906266' , '94906265' , '94906264' ) ; +test( macro , '94906266' , '-94906265' , '-94906264' ) ; +test( macro , '-94906266' , '-94906265' , '-1' ) ; +test( macro , '94906266' , '94906266' , '0' ) ; +test( macro , '-94906266' , '94906266' , '0' ) ; +test( macro , '94906266' , '-94906266' , '0' ) ; +test( macro , '-94906266' , '-94906266' , '0' ) ; +test( macro , '94906266' , '1073741824' , '94906266' ) ; +test( macro , '-94906266' , '1073741824' , '978835558' ) ; +test( macro , '94906266' , '-1073741824' , '-978835558' ) ; +test( macro , '-94906266' , '-1073741824' , '-94906266' ) ; +test( macro , '94906266' , '51676101935731' , '94906266' ) ; +test( macro , '-94906266' , '51676101935731' , '51676007029465' ) ; +test( macro , '94906266' , '-51676101935731' , '-51676007029465' ) ; +test( macro , '-94906266' , '-51676101935731' , '-94906266' ) ; +test( macro , '94906266' , '717897987691852588770249' , '94906266' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '717897987691852493863983' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '-94906266' ) ; test( macro , '1073741824' , '1' , '0' ) ; test( macro , '-1073741824' , '1' , '0' ) ; test( macro , '1073741824' , '-1' , '0' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '3634' ) ; test( macro , '-1073741824' , '5678' , '2044' ) ; test( macro , '1073741824' , '-5678' , '-2044' ) ; test( macro , '-1073741824' , '-5678' , '-3634' ) ; +test( macro , '1073741824' , '94906265' , '29772909' ) ; +test( macro , '-1073741824' , '94906265' , '65133356' ) ; +test( macro , '1073741824' , '-94906265' , '-65133356' ) ; +test( macro , '-1073741824' , '-94906265' , '-29772909' ) ; +test( macro , '1073741824' , '94906266' , '29772898' ) ; +test( macro , '-1073741824' , '94906266' , '65133368' ) ; +test( macro , '1073741824' , '-94906266' , '-65133368' ) ; +test( macro , '-1073741824' , '-94906266' , '-29772898' ) ; test( macro , '1073741824' , '1073741824' , '0' ) ; test( macro , '-1073741824' , '1073741824' , '0' ) ; test( macro , '1073741824' , '-1073741824' , '0' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '3023' ) ; test( macro , '-51676101935731' , '5678' , '2655' ) ; test( macro , '51676101935731' , '-5678' , '-2655' ) ; test( macro , '-51676101935731' , '-5678' , '-3023' ) ; +test( macro , '51676101935731' , '94906265' , '20268291' ) ; +test( macro , '-51676101935731' , '94906265' , '74637974' ) ; +test( macro , '51676101935731' , '-94906265' , '-74637974' ) ; +test( macro , '-51676101935731' , '-94906265' , '-20268291' ) ; +test( macro , '51676101935731' , '94906266' , '19723795' ) ; +test( macro , '-51676101935731' , '94906266' , '75182471' ) ; +test( macro , '51676101935731' , '-94906266' , '-75182471' ) ; +test( macro , '-51676101935731' , '-94906266' , '-19723795' ) ; test( macro , '51676101935731' , '1073741824' , '129172083' ) ; test( macro , '-51676101935731' , '1073741824' , '944569741' ) ; test( macro , '51676101935731' , '-1073741824' , '-944569741' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '3477' ) ; test( macro , '-717897987691852588770249' , '5678' , '2201' ) ; test( macro , '717897987691852588770249' , '-5678' , '-2201' ) ; test( macro , '-717897987691852588770249' , '-5678' , '-3477' ) ; +test( macro , '717897987691852588770249' , '94906265' , '56517934' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '38388331' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-38388331' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '-56517934' ) ; +test( macro , '717897987691852588770249' , '94906266' , '81625371' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '13280895' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-13280895' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '-81625371' ) ; test( macro , '717897987691852588770249' , '1073741824' , '278782921' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '794958903' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/imodn.js b/test/src/integer/arithmetic/imodn.js index d4a6843..55ae7e6 100644 --- a/test/src/integer/arithmetic/imodn.js +++ b/test/src/integer/arithmetic/imodn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '1' ) ; test( macro , '-1' , 5678 , '5677' ) ; test( macro , '1' , -5678 , '-5677' ) ; test( macro , '-1' , -5678 , '-1' ) ; +test( macro , '1' , 94906265 , '1' ) ; +test( macro , '-1' , 94906265 , '94906264' ) ; +test( macro , '1' , -94906265 , '-94906264' ) ; +test( macro , '-1' , -94906265 , '-1' ) ; +test( macro , '1' , 94906266 , '1' ) ; +test( macro , '-1' , 94906266 , '94906265' ) ; +test( macro , '1' , -94906266 , '-94906265' ) ; +test( macro , '-1' , -94906266 , '-1' ) ; test( macro , '1' , 1073741824 , '1' ) ; test( macro , '-1' , 1073741824 , '1073741823' ) ; test( macro , '1' , -1073741824 , '-1073741823' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '3' ) ; test( macro , '-3' , 5678 , '5675' ) ; test( macro , '3' , -5678 , '-5675' ) ; test( macro , '-3' , -5678 , '-3' ) ; +test( macro , '3' , 94906265 , '3' ) ; +test( macro , '-3' , 94906265 , '94906262' ) ; +test( macro , '3' , -94906265 , '-94906262' ) ; +test( macro , '-3' , -94906265 , '-3' ) ; +test( macro , '3' , 94906266 , '3' ) ; +test( macro , '-3' , 94906266 , '94906263' ) ; +test( macro , '3' , -94906266 , '-94906263' ) ; +test( macro , '-3' , -94906266 , '-3' ) ; test( macro , '3' , 1073741824 , '3' ) ; test( macro , '-3' , 1073741824 , '1073741821' ) ; test( macro , '3' , -1073741824 , '-1073741821' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '7' ) ; test( macro , '-7' , 5678 , '5671' ) ; test( macro , '7' , -5678 , '-5671' ) ; test( macro , '-7' , -5678 , '-7' ) ; +test( macro , '7' , 94906265 , '7' ) ; +test( macro , '-7' , 94906265 , '94906258' ) ; +test( macro , '7' , -94906265 , '-94906258' ) ; +test( macro , '-7' , -94906265 , '-7' ) ; +test( macro , '7' , 94906266 , '7' ) ; +test( macro , '-7' , 94906266 , '94906259' ) ; +test( macro , '7' , -94906266 , '-94906259' ) ; +test( macro , '-7' , -94906266 , '-7' ) ; test( macro , '7' , 1073741824 , '7' ) ; test( macro , '-7' , 1073741824 , '1073741817' ) ; test( macro , '7' , -1073741824 , '-1073741817' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '9' ) ; test( macro , '-9' , 5678 , '5669' ) ; test( macro , '9' , -5678 , '-5669' ) ; test( macro , '-9' , -5678 , '-9' ) ; +test( macro , '9' , 94906265 , '9' ) ; +test( macro , '-9' , 94906265 , '94906256' ) ; +test( macro , '9' , -94906265 , '-94906256' ) ; +test( macro , '-9' , -94906265 , '-9' ) ; +test( macro , '9' , 94906266 , '9' ) ; +test( macro , '-9' , 94906266 , '94906257' ) ; +test( macro , '9' , -94906266 , '-94906257' ) ; +test( macro , '-9' , -94906266 , '-9' ) ; test( macro , '9' , 1073741824 , '9' ) ; test( macro , '-9' , 1073741824 , '1073741815' ) ; test( macro , '9' , -1073741824 , '-1073741815' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '11' ) ; test( macro , '-11' , 5678 , '5667' ) ; test( macro , '11' , -5678 , '-5667' ) ; test( macro , '-11' , -5678 , '-11' ) ; +test( macro , '11' , 94906265 , '11' ) ; +test( macro , '-11' , 94906265 , '94906254' ) ; +test( macro , '11' , -94906265 , '-94906254' ) ; +test( macro , '-11' , -94906265 , '-11' ) ; +test( macro , '11' , 94906266 , '11' ) ; +test( macro , '-11' , 94906266 , '94906255' ) ; +test( macro , '11' , -94906266 , '-94906255' ) ; +test( macro , '-11' , -94906266 , '-11' ) ; test( macro , '11' , 1073741824 , '11' ) ; test( macro , '-11' , 1073741824 , '1073741813' ) ; test( macro , '11' , -1073741824 , '-1073741813' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '17' ) ; test( macro , '-17' , 5678 , '5661' ) ; test( macro , '17' , -5678 , '-5661' ) ; test( macro , '-17' , -5678 , '-17' ) ; +test( macro , '17' , 94906265 , '17' ) ; +test( macro , '-17' , 94906265 , '94906248' ) ; +test( macro , '17' , -94906265 , '-94906248' ) ; +test( macro , '-17' , -94906265 , '-17' ) ; +test( macro , '17' , 94906266 , '17' ) ; +test( macro , '-17' , 94906266 , '94906249' ) ; +test( macro , '17' , -94906266 , '-94906249' ) ; +test( macro , '-17' , -94906266 , '-17' ) ; test( macro , '17' , 1073741824 , '17' ) ; test( macro , '-17' , 1073741824 , '1073741807' ) ; test( macro , '17' , -1073741824 , '-1073741807' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '22' ) ; test( macro , '-22' , 5678 , '5656' ) ; test( macro , '22' , -5678 , '-5656' ) ; test( macro , '-22' , -5678 , '-22' ) ; +test( macro , '22' , 94906265 , '22' ) ; +test( macro , '-22' , 94906265 , '94906243' ) ; +test( macro , '22' , -94906265 , '-94906243' ) ; +test( macro , '-22' , -94906265 , '-22' ) ; +test( macro , '22' , 94906266 , '22' ) ; +test( macro , '-22' , 94906266 , '94906244' ) ; +test( macro , '22' , -94906266 , '-94906244' ) ; +test( macro , '-22' , -94906266 , '-22' ) ; test( macro , '22' , 1073741824 , '22' ) ; test( macro , '-22' , 1073741824 , '1073741802' ) ; test( macro , '22' , -1073741824 , '-1073741802' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '24' ) ; test( macro , '-24' , 5678 , '5654' ) ; test( macro , '24' , -5678 , '-5654' ) ; test( macro , '-24' , -5678 , '-24' ) ; +test( macro , '24' , 94906265 , '24' ) ; +test( macro , '-24' , 94906265 , '94906241' ) ; +test( macro , '24' , -94906265 , '-94906241' ) ; +test( macro , '-24' , -94906265 , '-24' ) ; +test( macro , '24' , 94906266 , '24' ) ; +test( macro , '-24' , 94906266 , '94906242' ) ; +test( macro , '24' , -94906266 , '-94906242' ) ; +test( macro , '-24' , -94906266 , '-24' ) ; test( macro , '24' , 1073741824 , '24' ) ; test( macro , '-24' , 1073741824 , '1073741800' ) ; test( macro , '24' , -1073741824 , '-1073741800' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '27' ) ; test( macro , '-27' , 5678 , '5651' ) ; test( macro , '27' , -5678 , '-5651' ) ; test( macro , '-27' , -5678 , '-27' ) ; +test( macro , '27' , 94906265 , '27' ) ; +test( macro , '-27' , 94906265 , '94906238' ) ; +test( macro , '27' , -94906265 , '-94906238' ) ; +test( macro , '-27' , -94906265 , '-27' ) ; +test( macro , '27' , 94906266 , '27' ) ; +test( macro , '-27' , 94906266 , '94906239' ) ; +test( macro , '27' , -94906266 , '-94906239' ) ; +test( macro , '-27' , -94906266 , '-27' ) ; test( macro , '27' , 1073741824 , '27' ) ; test( macro , '-27' , 1073741824 , '1073741797' ) ; test( macro , '27' , -1073741824 , '-1073741797' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '29' ) ; test( macro , '-29' , 5678 , '5649' ) ; test( macro , '29' , -5678 , '-5649' ) ; test( macro , '-29' , -5678 , '-29' ) ; +test( macro , '29' , 94906265 , '29' ) ; +test( macro , '-29' , 94906265 , '94906236' ) ; +test( macro , '29' , -94906265 , '-94906236' ) ; +test( macro , '-29' , -94906265 , '-29' ) ; +test( macro , '29' , 94906266 , '29' ) ; +test( macro , '-29' , 94906266 , '94906237' ) ; +test( macro , '29' , -94906266 , '-94906237' ) ; +test( macro , '-29' , -94906266 , '-29' ) ; test( macro , '29' , 1073741824 , '29' ) ; test( macro , '-29' , 1073741824 , '1073741795' ) ; test( macro , '29' , -1073741824 , '-1073741795' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '1234' ) ; test( macro , '-1234' , 5678 , '4444' ) ; test( macro , '1234' , -5678 , '-4444' ) ; test( macro , '-1234' , -5678 , '-1234' ) ; +test( macro , '1234' , 94906265 , '1234' ) ; +test( macro , '-1234' , 94906265 , '94905031' ) ; +test( macro , '1234' , -94906265 , '-94905031' ) ; +test( macro , '-1234' , -94906265 , '-1234' ) ; +test( macro , '1234' , 94906266 , '1234' ) ; +test( macro , '-1234' , 94906266 , '94905032' ) ; +test( macro , '1234' , -94906266 , '-94905032' ) ; +test( macro , '-1234' , -94906266 , '-1234' ) ; test( macro , '1234' , 1073741824 , '1234' ) ; test( macro , '-1234' , 1073741824 , '1073740590' ) ; test( macro , '1234' , -1073741824 , '-1073740590' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '0' ) ; test( macro , '-5678' , 5678 , '0' ) ; test( macro , '5678' , -5678 , '0' ) ; test( macro , '-5678' , -5678 , '0' ) ; +test( macro , '5678' , 94906265 , '5678' ) ; +test( macro , '-5678' , 94906265 , '94900587' ) ; +test( macro , '5678' , -94906265 , '-94900587' ) ; +test( macro , '-5678' , -94906265 , '-5678' ) ; +test( macro , '5678' , 94906266 , '5678' ) ; +test( macro , '-5678' , 94906266 , '94900588' ) ; +test( macro , '5678' , -94906266 , '-94900588' ) ; +test( macro , '-5678' , -94906266 , '-5678' ) ; test( macro , '5678' , 1073741824 , '5678' ) ; test( macro , '-5678' , 1073741824 , '1073736146' ) ; test( macro , '5678' , -1073741824 , '-1073736146' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '5678' ) ; test( macro , '-5678' , 51676101935731 , '51676101930053' ) ; test( macro , '5678' , -51676101935731 , '-51676101930053' ) ; test( macro , '-5678' , -51676101935731 , '-5678' ) ; +test( macro , '94906265' , 1 , '0' ) ; +test( macro , '-94906265' , 1 , '0' ) ; +test( macro , '94906265' , -1 , '0' ) ; +test( macro , '-94906265' , -1 , '0' ) ; +test( macro , '94906265' , 3 , '2' ) ; +test( macro , '-94906265' , 3 , '1' ) ; +test( macro , '94906265' , -3 , '-1' ) ; +test( macro , '-94906265' , -3 , '-2' ) ; +test( macro , '94906265' , 7 , '6' ) ; +test( macro , '-94906265' , 7 , '1' ) ; +test( macro , '94906265' , -7 , '-1' ) ; +test( macro , '-94906265' , -7 , '-6' ) ; +test( macro , '94906265' , 9 , '5' ) ; +test( macro , '-94906265' , 9 , '4' ) ; +test( macro , '94906265' , -9 , '-4' ) ; +test( macro , '-94906265' , -9 , '-5' ) ; +test( macro , '94906265' , 11 , '3' ) ; +test( macro , '-94906265' , 11 , '8' ) ; +test( macro , '94906265' , -11 , '-8' ) ; +test( macro , '-94906265' , -11 , '-3' ) ; +test( macro , '94906265' , 17 , '8' ) ; +test( macro , '-94906265' , 17 , '9' ) ; +test( macro , '94906265' , -17 , '-9' ) ; +test( macro , '-94906265' , -17 , '-8' ) ; +test( macro , '94906265' , 22 , '3' ) ; +test( macro , '-94906265' , 22 , '19' ) ; +test( macro , '94906265' , -22 , '-19' ) ; +test( macro , '-94906265' , -22 , '-3' ) ; +test( macro , '94906265' , 24 , '17' ) ; +test( macro , '-94906265' , 24 , '7' ) ; +test( macro , '94906265' , -24 , '-7' ) ; +test( macro , '-94906265' , -24 , '-17' ) ; +test( macro , '94906265' , 27 , '23' ) ; +test( macro , '-94906265' , 27 , '4' ) ; +test( macro , '94906265' , -27 , '-4' ) ; +test( macro , '-94906265' , -27 , '-23' ) ; +test( macro , '94906265' , 29 , '24' ) ; +test( macro , '-94906265' , 29 , '5' ) ; +test( macro , '94906265' , -29 , '-5' ) ; +test( macro , '-94906265' , -29 , '-24' ) ; +test( macro , '94906265' , 1234 , '559' ) ; +test( macro , '-94906265' , 1234 , '675' ) ; +test( macro , '94906265' , -1234 , '-675' ) ; +test( macro , '-94906265' , -1234 , '-559' ) ; +test( macro , '94906265' , 5678 , '4173' ) ; +test( macro , '-94906265' , 5678 , '1505' ) ; +test( macro , '94906265' , -5678 , '-1505' ) ; +test( macro , '-94906265' , -5678 , '-4173' ) ; +test( macro , '94906265' , 94906265 , '0' ) ; +test( macro , '-94906265' , 94906265 , '0' ) ; +test( macro , '94906265' , -94906265 , '0' ) ; +test( macro , '-94906265' , -94906265 , '0' ) ; +test( macro , '94906265' , 94906266 , '94906265' ) ; +test( macro , '-94906265' , 94906266 , '1' ) ; +test( macro , '94906265' , -94906266 , '-1' ) ; +test( macro , '-94906265' , -94906266 , '-94906265' ) ; +test( macro , '94906265' , 1073741824 , '94906265' ) ; +test( macro , '-94906265' , 1073741824 , '978835559' ) ; +test( macro , '94906265' , -1073741824 , '-978835559' ) ; +test( macro , '-94906265' , -1073741824 , '-94906265' ) ; +test( macro , '94906265' , 51676101935731 , '94906265' ) ; +test( macro , '-94906265' , 51676101935731 , '51676007029466' ) ; +test( macro , '94906265' , -51676101935731 , '-51676007029466' ) ; +test( macro , '-94906265' , -51676101935731 , '-94906265' ) ; +test( macro , '94906266' , 1 , '0' ) ; +test( macro , '-94906266' , 1 , '0' ) ; +test( macro , '94906266' , -1 , '0' ) ; +test( macro , '-94906266' , -1 , '0' ) ; +test( macro , '94906266' , 3 , '0' ) ; +test( macro , '-94906266' , 3 , '0' ) ; +test( macro , '94906266' , -3 , '0' ) ; +test( macro , '-94906266' , -3 , '0' ) ; +test( macro , '94906266' , 7 , '0' ) ; +test( macro , '-94906266' , 7 , '0' ) ; +test( macro , '94906266' , -7 , '0' ) ; +test( macro , '-94906266' , -7 , '0' ) ; +test( macro , '94906266' , 9 , '6' ) ; +test( macro , '-94906266' , 9 , '3' ) ; +test( macro , '94906266' , -9 , '-3' ) ; +test( macro , '-94906266' , -9 , '-6' ) ; +test( macro , '94906266' , 11 , '4' ) ; +test( macro , '-94906266' , 11 , '7' ) ; +test( macro , '94906266' , -11 , '-7' ) ; +test( macro , '-94906266' , -11 , '-4' ) ; +test( macro , '94906266' , 17 , '9' ) ; +test( macro , '-94906266' , 17 , '8' ) ; +test( macro , '94906266' , -17 , '-8' ) ; +test( macro , '-94906266' , -17 , '-9' ) ; +test( macro , '94906266' , 22 , '4' ) ; +test( macro , '-94906266' , 22 , '18' ) ; +test( macro , '94906266' , -22 , '-18' ) ; +test( macro , '-94906266' , -22 , '-4' ) ; +test( macro , '94906266' , 24 , '18' ) ; +test( macro , '-94906266' , 24 , '6' ) ; +test( macro , '94906266' , -24 , '-6' ) ; +test( macro , '-94906266' , -24 , '-18' ) ; +test( macro , '94906266' , 27 , '24' ) ; +test( macro , '-94906266' , 27 , '3' ) ; +test( macro , '94906266' , -27 , '-3' ) ; +test( macro , '-94906266' , -27 , '-24' ) ; +test( macro , '94906266' , 29 , '25' ) ; +test( macro , '-94906266' , 29 , '4' ) ; +test( macro , '94906266' , -29 , '-4' ) ; +test( macro , '-94906266' , -29 , '-25' ) ; +test( macro , '94906266' , 1234 , '560' ) ; +test( macro , '-94906266' , 1234 , '674' ) ; +test( macro , '94906266' , -1234 , '-674' ) ; +test( macro , '-94906266' , -1234 , '-560' ) ; +test( macro , '94906266' , 5678 , '4174' ) ; +test( macro , '-94906266' , 5678 , '1504' ) ; +test( macro , '94906266' , -5678 , '-1504' ) ; +test( macro , '-94906266' , -5678 , '-4174' ) ; +test( macro , '94906266' , 94906265 , '1' ) ; +test( macro , '-94906266' , 94906265 , '94906264' ) ; +test( macro , '94906266' , -94906265 , '-94906264' ) ; +test( macro , '-94906266' , -94906265 , '-1' ) ; +test( macro , '94906266' , 94906266 , '0' ) ; +test( macro , '-94906266' , 94906266 , '0' ) ; +test( macro , '94906266' , -94906266 , '0' ) ; +test( macro , '-94906266' , -94906266 , '0' ) ; +test( macro , '94906266' , 1073741824 , '94906266' ) ; +test( macro , '-94906266' , 1073741824 , '978835558' ) ; +test( macro , '94906266' , -1073741824 , '-978835558' ) ; +test( macro , '-94906266' , -1073741824 , '-94906266' ) ; +test( macro , '94906266' , 51676101935731 , '94906266' ) ; +test( macro , '-94906266' , 51676101935731 , '51676007029465' ) ; +test( macro , '94906266' , -51676101935731 , '-51676007029465' ) ; +test( macro , '-94906266' , -51676101935731 , '-94906266' ) ; test( macro , '1073741824' , 1 , '0' ) ; test( macro , '-1073741824' , 1 , '0' ) ; test( macro , '1073741824' , -1 , '0' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '3634' ) ; test( macro , '-1073741824' , 5678 , '2044' ) ; test( macro , '1073741824' , -5678 , '-2044' ) ; test( macro , '-1073741824' , -5678 , '-3634' ) ; +test( macro , '1073741824' , 94906265 , '29772909' ) ; +test( macro , '-1073741824' , 94906265 , '65133356' ) ; +test( macro , '1073741824' , -94906265 , '-65133356' ) ; +test( macro , '-1073741824' , -94906265 , '-29772909' ) ; +test( macro , '1073741824' , 94906266 , '29772898' ) ; +test( macro , '-1073741824' , 94906266 , '65133368' ) ; +test( macro , '1073741824' , -94906266 , '-65133368' ) ; +test( macro , '-1073741824' , -94906266 , '-29772898' ) ; test( macro , '1073741824' , 1073741824 , '0' ) ; test( macro , '-1073741824' , 1073741824 , '0' ) ; test( macro , '1073741824' , -1073741824 , '0' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '3023' ) ; test( macro , '-51676101935731' , 5678 , '2655' ) ; test( macro , '51676101935731' , -5678 , '-2655' ) ; test( macro , '-51676101935731' , -5678 , '-3023' ) ; +test( macro , '51676101935731' , 94906265 , '20268291' ) ; +test( macro , '-51676101935731' , 94906265 , '74637974' ) ; +test( macro , '51676101935731' , -94906265 , '-74637974' ) ; +test( macro , '-51676101935731' , -94906265 , '-20268291' ) ; +test( macro , '51676101935731' , 94906266 , '19723795' ) ; +test( macro , '-51676101935731' , 94906266 , '75182471' ) ; +test( macro , '51676101935731' , -94906266 , '-75182471' ) ; +test( macro , '-51676101935731' , -94906266 , '-19723795' ) ; test( macro , '51676101935731' , 1073741824 , '129172083' ) ; test( macro , '-51676101935731' , 1073741824 , '944569741' ) ; test( macro , '51676101935731' , -1073741824 , '-944569741' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '3477' ) ; test( macro , '-717897987691852588770249' , 5678 , '2201' ) ; test( macro , '717897987691852588770249' , -5678 , '-2201' ) ; test( macro , '-717897987691852588770249' , -5678 , '-3477' ) ; +test( macro , '717897987691852588770249' , 94906265 , '56517934' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '38388331' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-38388331' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '-56517934' ) ; +test( macro , '717897987691852588770249' , 94906266 , '81625371' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '13280895' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-13280895' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '-81625371' ) ; test( macro , '717897987691852588770249' , 1073741824 , '278782921' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '794958903' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/imul.js b/test/src/integer/arithmetic/imul.js index fb0303b..f8b8b83 100644 --- a/test/src/integer/arithmetic/imul.js +++ b/test/src/integer/arithmetic/imul.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '5678' ) ; test( macro , '-1' , '5678' , '-5678' ) ; test( macro , '1' , '-5678' , '-5678' ) ; test( macro , '-1' , '-5678' , '5678' ) ; +test( macro , '1' , '94906265' , '94906265' ) ; +test( macro , '-1' , '94906265' , '-94906265' ) ; +test( macro , '1' , '-94906265' , '-94906265' ) ; +test( macro , '-1' , '-94906265' , '94906265' ) ; +test( macro , '1' , '94906266' , '94906266' ) ; +test( macro , '-1' , '94906266' , '-94906266' ) ; +test( macro , '1' , '-94906266' , '-94906266' ) ; +test( macro , '-1' , '-94906266' , '94906266' ) ; test( macro , '1' , '1073741824' , '1073741824' ) ; test( macro , '-1' , '1073741824' , '-1073741824' ) ; test( macro , '1' , '-1073741824' , '-1073741824' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '17034' ) ; test( macro , '-3' , '5678' , '-17034' ) ; test( macro , '3' , '-5678' , '-17034' ) ; test( macro , '-3' , '-5678' , '17034' ) ; +test( macro , '3' , '94906265' , '284718795' ) ; +test( macro , '-3' , '94906265' , '-284718795' ) ; +test( macro , '3' , '-94906265' , '-284718795' ) ; +test( macro , '-3' , '-94906265' , '284718795' ) ; +test( macro , '3' , '94906266' , '284718798' ) ; +test( macro , '-3' , '94906266' , '-284718798' ) ; +test( macro , '3' , '-94906266' , '-284718798' ) ; +test( macro , '-3' , '-94906266' , '284718798' ) ; test( macro , '3' , '1073741824' , '3221225472' ) ; test( macro , '-3' , '1073741824' , '-3221225472' ) ; test( macro , '3' , '-1073741824' , '-3221225472' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '39746' ) ; test( macro , '-7' , '5678' , '-39746' ) ; test( macro , '7' , '-5678' , '-39746' ) ; test( macro , '-7' , '-5678' , '39746' ) ; +test( macro , '7' , '94906265' , '664343855' ) ; +test( macro , '-7' , '94906265' , '-664343855' ) ; +test( macro , '7' , '-94906265' , '-664343855' ) ; +test( macro , '-7' , '-94906265' , '664343855' ) ; +test( macro , '7' , '94906266' , '664343862' ) ; +test( macro , '-7' , '94906266' , '-664343862' ) ; +test( macro , '7' , '-94906266' , '-664343862' ) ; +test( macro , '-7' , '-94906266' , '664343862' ) ; test( macro , '7' , '1073741824' , '7516192768' ) ; test( macro , '-7' , '1073741824' , '-7516192768' ) ; test( macro , '7' , '-1073741824' , '-7516192768' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '51102' ) ; test( macro , '-9' , '5678' , '-51102' ) ; test( macro , '9' , '-5678' , '-51102' ) ; test( macro , '-9' , '-5678' , '51102' ) ; +test( macro , '9' , '94906265' , '854156385' ) ; +test( macro , '-9' , '94906265' , '-854156385' ) ; +test( macro , '9' , '-94906265' , '-854156385' ) ; +test( macro , '-9' , '-94906265' , '854156385' ) ; +test( macro , '9' , '94906266' , '854156394' ) ; +test( macro , '-9' , '94906266' , '-854156394' ) ; +test( macro , '9' , '-94906266' , '-854156394' ) ; +test( macro , '-9' , '-94906266' , '854156394' ) ; test( macro , '9' , '1073741824' , '9663676416' ) ; test( macro , '-9' , '1073741824' , '-9663676416' ) ; test( macro , '9' , '-1073741824' , '-9663676416' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '62458' ) ; test( macro , '-11' , '5678' , '-62458' ) ; test( macro , '11' , '-5678' , '-62458' ) ; test( macro , '-11' , '-5678' , '62458' ) ; +test( macro , '11' , '94906265' , '1043968915' ) ; +test( macro , '-11' , '94906265' , '-1043968915' ) ; +test( macro , '11' , '-94906265' , '-1043968915' ) ; +test( macro , '-11' , '-94906265' , '1043968915' ) ; +test( macro , '11' , '94906266' , '1043968926' ) ; +test( macro , '-11' , '94906266' , '-1043968926' ) ; +test( macro , '11' , '-94906266' , '-1043968926' ) ; +test( macro , '-11' , '-94906266' , '1043968926' ) ; test( macro , '11' , '1073741824' , '11811160064' ) ; test( macro , '-11' , '1073741824' , '-11811160064' ) ; test( macro , '11' , '-1073741824' , '-11811160064' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '96526' ) ; test( macro , '-17' , '5678' , '-96526' ) ; test( macro , '17' , '-5678' , '-96526' ) ; test( macro , '-17' , '-5678' , '96526' ) ; +test( macro , '17' , '94906265' , '1613406505' ) ; +test( macro , '-17' , '94906265' , '-1613406505' ) ; +test( macro , '17' , '-94906265' , '-1613406505' ) ; +test( macro , '-17' , '-94906265' , '1613406505' ) ; +test( macro , '17' , '94906266' , '1613406522' ) ; +test( macro , '-17' , '94906266' , '-1613406522' ) ; +test( macro , '17' , '-94906266' , '-1613406522' ) ; +test( macro , '-17' , '-94906266' , '1613406522' ) ; test( macro , '17' , '1073741824' , '18253611008' ) ; test( macro , '-17' , '1073741824' , '-18253611008' ) ; test( macro , '17' , '-1073741824' , '-18253611008' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '124916' ) ; test( macro , '-22' , '5678' , '-124916' ) ; test( macro , '22' , '-5678' , '-124916' ) ; test( macro , '-22' , '-5678' , '124916' ) ; +test( macro , '22' , '94906265' , '2087937830' ) ; +test( macro , '-22' , '94906265' , '-2087937830' ) ; +test( macro , '22' , '-94906265' , '-2087937830' ) ; +test( macro , '-22' , '-94906265' , '2087937830' ) ; +test( macro , '22' , '94906266' , '2087937852' ) ; +test( macro , '-22' , '94906266' , '-2087937852' ) ; +test( macro , '22' , '-94906266' , '-2087937852' ) ; +test( macro , '-22' , '-94906266' , '2087937852' ) ; test( macro , '22' , '1073741824' , '23622320128' ) ; test( macro , '-22' , '1073741824' , '-23622320128' ) ; test( macro , '22' , '-1073741824' , '-23622320128' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '136272' ) ; test( macro , '-24' , '5678' , '-136272' ) ; test( macro , '24' , '-5678' , '-136272' ) ; test( macro , '-24' , '-5678' , '136272' ) ; +test( macro , '24' , '94906265' , '2277750360' ) ; +test( macro , '-24' , '94906265' , '-2277750360' ) ; +test( macro , '24' , '-94906265' , '-2277750360' ) ; +test( macro , '-24' , '-94906265' , '2277750360' ) ; +test( macro , '24' , '94906266' , '2277750384' ) ; +test( macro , '-24' , '94906266' , '-2277750384' ) ; +test( macro , '24' , '-94906266' , '-2277750384' ) ; +test( macro , '-24' , '-94906266' , '2277750384' ) ; test( macro , '24' , '1073741824' , '25769803776' ) ; test( macro , '-24' , '1073741824' , '-25769803776' ) ; test( macro , '24' , '-1073741824' , '-25769803776' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '153306' ) ; test( macro , '-27' , '5678' , '-153306' ) ; test( macro , '27' , '-5678' , '-153306' ) ; test( macro , '-27' , '-5678' , '153306' ) ; +test( macro , '27' , '94906265' , '2562469155' ) ; +test( macro , '-27' , '94906265' , '-2562469155' ) ; +test( macro , '27' , '-94906265' , '-2562469155' ) ; +test( macro , '-27' , '-94906265' , '2562469155' ) ; +test( macro , '27' , '94906266' , '2562469182' ) ; +test( macro , '-27' , '94906266' , '-2562469182' ) ; +test( macro , '27' , '-94906266' , '-2562469182' ) ; +test( macro , '-27' , '-94906266' , '2562469182' ) ; test( macro , '27' , '1073741824' , '28991029248' ) ; test( macro , '-27' , '1073741824' , '-28991029248' ) ; test( macro , '27' , '-1073741824' , '-28991029248' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '164662' ) ; test( macro , '-29' , '5678' , '-164662' ) ; test( macro , '29' , '-5678' , '-164662' ) ; test( macro , '-29' , '-5678' , '164662' ) ; +test( macro , '29' , '94906265' , '2752281685' ) ; +test( macro , '-29' , '94906265' , '-2752281685' ) ; +test( macro , '29' , '-94906265' , '-2752281685' ) ; +test( macro , '-29' , '-94906265' , '2752281685' ) ; +test( macro , '29' , '94906266' , '2752281714' ) ; +test( macro , '-29' , '94906266' , '-2752281714' ) ; +test( macro , '29' , '-94906266' , '-2752281714' ) ; +test( macro , '-29' , '-94906266' , '2752281714' ) ; test( macro , '29' , '1073741824' , '31138512896' ) ; test( macro , '-29' , '1073741824' , '-31138512896' ) ; test( macro , '29' , '-1073741824' , '-31138512896' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '7006652' ) ; test( macro , '-1234' , '5678' , '-7006652' ) ; test( macro , '1234' , '-5678' , '-7006652' ) ; test( macro , '-1234' , '-5678' , '7006652' ) ; +test( macro , '1234' , '94906265' , '117114331010' ) ; +test( macro , '-1234' , '94906265' , '-117114331010' ) ; +test( macro , '1234' , '-94906265' , '-117114331010' ) ; +test( macro , '-1234' , '-94906265' , '117114331010' ) ; +test( macro , '1234' , '94906266' , '117114332244' ) ; +test( macro , '-1234' , '94906266' , '-117114332244' ) ; +test( macro , '1234' , '-94906266' , '-117114332244' ) ; +test( macro , '-1234' , '-94906266' , '117114332244' ) ; test( macro , '1234' , '1073741824' , '1324997410816' ) ; test( macro , '-1234' , '1073741824' , '-1324997410816' ) ; test( macro , '1234' , '-1073741824' , '-1324997410816' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '32239684' ) ; test( macro , '-5678' , '5678' , '-32239684' ) ; test( macro , '5678' , '-5678' , '-32239684' ) ; test( macro , '-5678' , '-5678' , '32239684' ) ; +test( macro , '5678' , '94906265' , '538877772670' ) ; +test( macro , '-5678' , '94906265' , '-538877772670' ) ; +test( macro , '5678' , '-94906265' , '-538877772670' ) ; +test( macro , '-5678' , '-94906265' , '538877772670' ) ; +test( macro , '5678' , '94906266' , '538877778348' ) ; +test( macro , '-5678' , '94906266' , '-538877778348' ) ; +test( macro , '5678' , '-94906266' , '-538877778348' ) ; +test( macro , '-5678' , '-94906266' , '538877778348' ) ; test( macro , '5678' , '1073741824' , '6096706076672' ) ; test( macro , '-5678' , '1073741824' , '-6096706076672' ) ; test( macro , '5678' , '-1073741824' , '-6096706076672' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '407622477411433899903747382 test( macro , '-5678' , '717897987691852588770249' , '-4076224774114338999037473822' ) ; test( macro , '5678' , '-717897987691852588770249' , '-4076224774114338999037473822' ) ; test( macro , '-5678' , '-717897987691852588770249' , '4076224774114338999037473822' ) ; +test( macro , '94906265' , '1' , '94906265' ) ; +test( macro , '-94906265' , '1' , '-94906265' ) ; +test( macro , '94906265' , '-1' , '-94906265' ) ; +test( macro , '-94906265' , '-1' , '94906265' ) ; +test( macro , '94906265' , '3' , '284718795' ) ; +test( macro , '-94906265' , '3' , '-284718795' ) ; +test( macro , '94906265' , '-3' , '-284718795' ) ; +test( macro , '-94906265' , '-3' , '284718795' ) ; +test( macro , '94906265' , '7' , '664343855' ) ; +test( macro , '-94906265' , '7' , '-664343855' ) ; +test( macro , '94906265' , '-7' , '-664343855' ) ; +test( macro , '-94906265' , '-7' , '664343855' ) ; +test( macro , '94906265' , '9' , '854156385' ) ; +test( macro , '-94906265' , '9' , '-854156385' ) ; +test( macro , '94906265' , '-9' , '-854156385' ) ; +test( macro , '-94906265' , '-9' , '854156385' ) ; +test( macro , '94906265' , '11' , '1043968915' ) ; +test( macro , '-94906265' , '11' , '-1043968915' ) ; +test( macro , '94906265' , '-11' , '-1043968915' ) ; +test( macro , '-94906265' , '-11' , '1043968915' ) ; +test( macro , '94906265' , '17' , '1613406505' ) ; +test( macro , '-94906265' , '17' , '-1613406505' ) ; +test( macro , '94906265' , '-17' , '-1613406505' ) ; +test( macro , '-94906265' , '-17' , '1613406505' ) ; +test( macro , '94906265' , '22' , '2087937830' ) ; +test( macro , '-94906265' , '22' , '-2087937830' ) ; +test( macro , '94906265' , '-22' , '-2087937830' ) ; +test( macro , '-94906265' , '-22' , '2087937830' ) ; +test( macro , '94906265' , '24' , '2277750360' ) ; +test( macro , '-94906265' , '24' , '-2277750360' ) ; +test( macro , '94906265' , '-24' , '-2277750360' ) ; +test( macro , '-94906265' , '-24' , '2277750360' ) ; +test( macro , '94906265' , '27' , '2562469155' ) ; +test( macro , '-94906265' , '27' , '-2562469155' ) ; +test( macro , '94906265' , '-27' , '-2562469155' ) ; +test( macro , '-94906265' , '-27' , '2562469155' ) ; +test( macro , '94906265' , '29' , '2752281685' ) ; +test( macro , '-94906265' , '29' , '-2752281685' ) ; +test( macro , '94906265' , '-29' , '-2752281685' ) ; +test( macro , '-94906265' , '-29' , '2752281685' ) ; +test( macro , '94906265' , '1234' , '117114331010' ) ; +test( macro , '-94906265' , '1234' , '-117114331010' ) ; +test( macro , '94906265' , '-1234' , '-117114331010' ) ; +test( macro , '-94906265' , '-1234' , '117114331010' ) ; +test( macro , '94906265' , '5678' , '538877772670' ) ; +test( macro , '-94906265' , '5678' , '-538877772670' ) ; +test( macro , '94906265' , '-5678' , '-538877772670' ) ; +test( macro , '-94906265' , '-5678' , '538877772670' ) ; +test( macro , '94906265' , '94906265' , '9007199136250225' ) ; +test( macro , '-94906265' , '94906265' , '-9007199136250225' ) ; +test( macro , '94906265' , '-94906265' , '-9007199136250225' ) ; +test( macro , '-94906265' , '-94906265' , '9007199136250225' ) ; +test( macro , '94906265' , '94906266' , '9007199231156490' ) ; +test( macro , '-94906265' , '94906266' , '-9007199231156490' ) ; +test( macro , '94906265' , '-94906266' , '-9007199231156490' ) ; +test( macro , '-94906265' , '-94906266' , '9007199231156490' ) ; +test( macro , '94906265' , '1073741824' , '101904826090127360' ) ; +test( macro , '-94906265' , '1073741824' , '-101904826090127360' ) ; +test( macro , '94906265' , '-1073741824' , '-101904826090127360' ) ; +test( macro , '-94906265' , '-1073741824' , '101904826090127360' ) ; +test( macro , '94906265' , '51676101935731' , '4904385824479499254715' ) ; +test( macro , '-94906265' , '51676101935731' , '-4904385824479499254715' ) ; +test( macro , '94906265' , '-51676101935731' , '-4904385824479499254715' ) ; +test( macro , '-94906265' , '-51676101935731' , '4904385824479499254715' ) ; +test( macro , '94906265' , '717897987691852588770249' , '68133016662849700130765275709985' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-68133016662849700130765275709985' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-68133016662849700130765275709985' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '68133016662849700130765275709985' ) ; +test( macro , '94906266' , '1' , '94906266' ) ; +test( macro , '-94906266' , '1' , '-94906266' ) ; +test( macro , '94906266' , '-1' , '-94906266' ) ; +test( macro , '-94906266' , '-1' , '94906266' ) ; +test( macro , '94906266' , '3' , '284718798' ) ; +test( macro , '-94906266' , '3' , '-284718798' ) ; +test( macro , '94906266' , '-3' , '-284718798' ) ; +test( macro , '-94906266' , '-3' , '284718798' ) ; +test( macro , '94906266' , '7' , '664343862' ) ; +test( macro , '-94906266' , '7' , '-664343862' ) ; +test( macro , '94906266' , '-7' , '-664343862' ) ; +test( macro , '-94906266' , '-7' , '664343862' ) ; +test( macro , '94906266' , '9' , '854156394' ) ; +test( macro , '-94906266' , '9' , '-854156394' ) ; +test( macro , '94906266' , '-9' , '-854156394' ) ; +test( macro , '-94906266' , '-9' , '854156394' ) ; +test( macro , '94906266' , '11' , '1043968926' ) ; +test( macro , '-94906266' , '11' , '-1043968926' ) ; +test( macro , '94906266' , '-11' , '-1043968926' ) ; +test( macro , '-94906266' , '-11' , '1043968926' ) ; +test( macro , '94906266' , '17' , '1613406522' ) ; +test( macro , '-94906266' , '17' , '-1613406522' ) ; +test( macro , '94906266' , '-17' , '-1613406522' ) ; +test( macro , '-94906266' , '-17' , '1613406522' ) ; +test( macro , '94906266' , '22' , '2087937852' ) ; +test( macro , '-94906266' , '22' , '-2087937852' ) ; +test( macro , '94906266' , '-22' , '-2087937852' ) ; +test( macro , '-94906266' , '-22' , '2087937852' ) ; +test( macro , '94906266' , '24' , '2277750384' ) ; +test( macro , '-94906266' , '24' , '-2277750384' ) ; +test( macro , '94906266' , '-24' , '-2277750384' ) ; +test( macro , '-94906266' , '-24' , '2277750384' ) ; +test( macro , '94906266' , '27' , '2562469182' ) ; +test( macro , '-94906266' , '27' , '-2562469182' ) ; +test( macro , '94906266' , '-27' , '-2562469182' ) ; +test( macro , '-94906266' , '-27' , '2562469182' ) ; +test( macro , '94906266' , '29' , '2752281714' ) ; +test( macro , '-94906266' , '29' , '-2752281714' ) ; +test( macro , '94906266' , '-29' , '-2752281714' ) ; +test( macro , '-94906266' , '-29' , '2752281714' ) ; +test( macro , '94906266' , '1234' , '117114332244' ) ; +test( macro , '-94906266' , '1234' , '-117114332244' ) ; +test( macro , '94906266' , '-1234' , '-117114332244' ) ; +test( macro , '-94906266' , '-1234' , '117114332244' ) ; +test( macro , '94906266' , '5678' , '538877778348' ) ; +test( macro , '-94906266' , '5678' , '-538877778348' ) ; +test( macro , '94906266' , '-5678' , '-538877778348' ) ; +test( macro , '-94906266' , '-5678' , '538877778348' ) ; +test( macro , '94906266' , '94906265' , '9007199231156490' ) ; +test( macro , '-94906266' , '94906265' , '-9007199231156490' ) ; +test( macro , '94906266' , '-94906265' , '-9007199231156490' ) ; +test( macro , '-94906266' , '-94906265' , '9007199231156490' ) ; +test( macro , '94906266' , '94906266' , '9007199326062756' ) ; +test( macro , '-94906266' , '94906266' , '-9007199326062756' ) ; +test( macro , '94906266' , '-94906266' , '-9007199326062756' ) ; +test( macro , '-94906266' , '-94906266' , '9007199326062756' ) ; +test( macro , '94906266' , '1073741824' , '101904827163869184' ) ; +test( macro , '-94906266' , '1073741824' , '-101904827163869184' ) ; +test( macro , '94906266' , '-1073741824' , '-101904827163869184' ) ; +test( macro , '-94906266' , '-1073741824' , '101904827163869184' ) ; +test( macro , '94906266' , '51676101935731' , '4904385876155601190446' ) ; +test( macro , '-94906266' , '51676101935731' , '-4904385876155601190446' ) ; +test( macro , '94906266' , '-51676101935731' , '-4904385876155601190446' ) ; +test( macro , '-94906266' , '-51676101935731' , '4904385876155601190446' ) ; +test( macro , '94906266' , '717897987691852588770249' , '68133017380747687822617864480234' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-68133017380747687822617864480234' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-68133017380747687822617864480234' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '68133017380747687822617864480234' ) ; test( macro , '1073741824' , '1' , '1073741824' ) ; test( macro , '-1073741824' , '1' , '-1073741824' ) ; test( macro , '1073741824' , '-1' , '-1073741824' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '6096706076672' ) ; test( macro , '-1073741824' , '5678' , '-6096706076672' ) ; test( macro , '1073741824' , '-5678' , '-6096706076672' ) ; test( macro , '-1073741824' , '-5678' , '6096706076672' ) ; +test( macro , '1073741824' , '94906265' , '101904826090127360' ) ; +test( macro , '-1073741824' , '94906265' , '-101904826090127360' ) ; +test( macro , '1073741824' , '-94906265' , '-101904826090127360' ) ; +test( macro , '-1073741824' , '-94906265' , '101904826090127360' ) ; +test( macro , '1073741824' , '94906266' , '101904827163869184' ) ; +test( macro , '-1073741824' , '94906266' , '-101904827163869184' ) ; +test( macro , '1073741824' , '-94906266' , '-101904827163869184' ) ; +test( macro , '-1073741824' , '-94906266' , '101904827163869184' ) ; test( macro , '1073741824' , '1073741824' , '1152921504606846976' ) ; test( macro , '-1073741824' , '1073741824' , '-1152921504606846976' ) ; test( macro , '1073741824' , '-1073741824' , '-1152921504606846976' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '293416906791080618' ) ; test( macro , '-51676101935731' , '5678' , '-293416906791080618' ) ; test( macro , '51676101935731' , '-5678' , '-293416906791080618' ) ; test( macro , '-51676101935731' , '-5678' , '293416906791080618' ) ; +test( macro , '51676101935731' , '94906265' , '4904385824479499254715' ) ; +test( macro , '-51676101935731' , '94906265' , '-4904385824479499254715' ) ; +test( macro , '51676101935731' , '-94906265' , '-4904385824479499254715' ) ; +test( macro , '-51676101935731' , '-94906265' , '4904385824479499254715' ) ; +test( macro , '51676101935731' , '94906266' , '4904385876155601190446' ) ; +test( macro , '-51676101935731' , '94906266' , '-4904385876155601190446' ) ; +test( macro , '51676101935731' , '-94906266' , '-4904385876155601190446' ) ; +test( macro , '-51676101935731' , '-94906266' , '4904385876155601190446' ) ; test( macro , '51676101935731' , '1073741824' , '55486791949681734713344' ) ; test( macro , '-51676101935731' , '1073741824' , '-55486791949681734713344' ) ; test( macro , '51676101935731' , '-1073741824' , '-55486791949681734713344' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '407622477411433899903747382 test( macro , '-717897987691852588770249' , '5678' , '-4076224774114338999037473822' ) ; test( macro , '717897987691852588770249' , '-5678' , '-4076224774114338999037473822' ) ; test( macro , '-717897987691852588770249' , '-5678' , '4076224774114338999037473822' ) ; +test( macro , '717897987691852588770249' , '94906265' , '68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , '94906266' , '68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-68133017380747687822617864480234' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '68133017380747687822617864480234' ) ; test( macro , '717897987691852588770249' , '1073741824' , '770837094750179348605289078194176' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-770837094750179348605289078194176' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-770837094750179348605289078194176' ) ; diff --git a/test/src/integer/arithmetic/imuln.js b/test/src/integer/arithmetic/imuln.js index b88cab9..1a962e7 100644 --- a/test/src/integer/arithmetic/imuln.js +++ b/test/src/integer/arithmetic/imuln.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '5678' ) ; test( macro , '-1' , 5678 , '-5678' ) ; test( macro , '1' , -5678 , '-5678' ) ; test( macro , '-1' , -5678 , '5678' ) ; +test( macro , '1' , 94906265 , '94906265' ) ; +test( macro , '-1' , 94906265 , '-94906265' ) ; +test( macro , '1' , -94906265 , '-94906265' ) ; +test( macro , '-1' , -94906265 , '94906265' ) ; +test( macro , '1' , 94906266 , '94906266' ) ; +test( macro , '-1' , 94906266 , '-94906266' ) ; +test( macro , '1' , -94906266 , '-94906266' ) ; +test( macro , '-1' , -94906266 , '94906266' ) ; test( macro , '1' , 1073741824 , '1073741824' ) ; test( macro , '-1' , 1073741824 , '-1073741824' ) ; test( macro , '1' , -1073741824 , '-1073741824' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '17034' ) ; test( macro , '-3' , 5678 , '-17034' ) ; test( macro , '3' , -5678 , '-17034' ) ; test( macro , '-3' , -5678 , '17034' ) ; +test( macro , '3' , 94906265 , '284718795' ) ; +test( macro , '-3' , 94906265 , '-284718795' ) ; +test( macro , '3' , -94906265 , '-284718795' ) ; +test( macro , '-3' , -94906265 , '284718795' ) ; +test( macro , '3' , 94906266 , '284718798' ) ; +test( macro , '-3' , 94906266 , '-284718798' ) ; +test( macro , '3' , -94906266 , '-284718798' ) ; +test( macro , '-3' , -94906266 , '284718798' ) ; test( macro , '3' , 1073741824 , '3221225472' ) ; test( macro , '-3' , 1073741824 , '-3221225472' ) ; test( macro , '3' , -1073741824 , '-3221225472' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '39746' ) ; test( macro , '-7' , 5678 , '-39746' ) ; test( macro , '7' , -5678 , '-39746' ) ; test( macro , '-7' , -5678 , '39746' ) ; +test( macro , '7' , 94906265 , '664343855' ) ; +test( macro , '-7' , 94906265 , '-664343855' ) ; +test( macro , '7' , -94906265 , '-664343855' ) ; +test( macro , '-7' , -94906265 , '664343855' ) ; +test( macro , '7' , 94906266 , '664343862' ) ; +test( macro , '-7' , 94906266 , '-664343862' ) ; +test( macro , '7' , -94906266 , '-664343862' ) ; +test( macro , '-7' , -94906266 , '664343862' ) ; test( macro , '7' , 1073741824 , '7516192768' ) ; test( macro , '-7' , 1073741824 , '-7516192768' ) ; test( macro , '7' , -1073741824 , '-7516192768' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '51102' ) ; test( macro , '-9' , 5678 , '-51102' ) ; test( macro , '9' , -5678 , '-51102' ) ; test( macro , '-9' , -5678 , '51102' ) ; +test( macro , '9' , 94906265 , '854156385' ) ; +test( macro , '-9' , 94906265 , '-854156385' ) ; +test( macro , '9' , -94906265 , '-854156385' ) ; +test( macro , '-9' , -94906265 , '854156385' ) ; +test( macro , '9' , 94906266 , '854156394' ) ; +test( macro , '-9' , 94906266 , '-854156394' ) ; +test( macro , '9' , -94906266 , '-854156394' ) ; +test( macro , '-9' , -94906266 , '854156394' ) ; test( macro , '9' , 1073741824 , '9663676416' ) ; test( macro , '-9' , 1073741824 , '-9663676416' ) ; test( macro , '9' , -1073741824 , '-9663676416' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '62458' ) ; test( macro , '-11' , 5678 , '-62458' ) ; test( macro , '11' , -5678 , '-62458' ) ; test( macro , '-11' , -5678 , '62458' ) ; +test( macro , '11' , 94906265 , '1043968915' ) ; +test( macro , '-11' , 94906265 , '-1043968915' ) ; +test( macro , '11' , -94906265 , '-1043968915' ) ; +test( macro , '-11' , -94906265 , '1043968915' ) ; +test( macro , '11' , 94906266 , '1043968926' ) ; +test( macro , '-11' , 94906266 , '-1043968926' ) ; +test( macro , '11' , -94906266 , '-1043968926' ) ; +test( macro , '-11' , -94906266 , '1043968926' ) ; test( macro , '11' , 1073741824 , '11811160064' ) ; test( macro , '-11' , 1073741824 , '-11811160064' ) ; test( macro , '11' , -1073741824 , '-11811160064' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '96526' ) ; test( macro , '-17' , 5678 , '-96526' ) ; test( macro , '17' , -5678 , '-96526' ) ; test( macro , '-17' , -5678 , '96526' ) ; +test( macro , '17' , 94906265 , '1613406505' ) ; +test( macro , '-17' , 94906265 , '-1613406505' ) ; +test( macro , '17' , -94906265 , '-1613406505' ) ; +test( macro , '-17' , -94906265 , '1613406505' ) ; +test( macro , '17' , 94906266 , '1613406522' ) ; +test( macro , '-17' , 94906266 , '-1613406522' ) ; +test( macro , '17' , -94906266 , '-1613406522' ) ; +test( macro , '-17' , -94906266 , '1613406522' ) ; test( macro , '17' , 1073741824 , '18253611008' ) ; test( macro , '-17' , 1073741824 , '-18253611008' ) ; test( macro , '17' , -1073741824 , '-18253611008' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '124916' ) ; test( macro , '-22' , 5678 , '-124916' ) ; test( macro , '22' , -5678 , '-124916' ) ; test( macro , '-22' , -5678 , '124916' ) ; +test( macro , '22' , 94906265 , '2087937830' ) ; +test( macro , '-22' , 94906265 , '-2087937830' ) ; +test( macro , '22' , -94906265 , '-2087937830' ) ; +test( macro , '-22' , -94906265 , '2087937830' ) ; +test( macro , '22' , 94906266 , '2087937852' ) ; +test( macro , '-22' , 94906266 , '-2087937852' ) ; +test( macro , '22' , -94906266 , '-2087937852' ) ; +test( macro , '-22' , -94906266 , '2087937852' ) ; test( macro , '22' , 1073741824 , '23622320128' ) ; test( macro , '-22' , 1073741824 , '-23622320128' ) ; test( macro , '22' , -1073741824 , '-23622320128' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '136272' ) ; test( macro , '-24' , 5678 , '-136272' ) ; test( macro , '24' , -5678 , '-136272' ) ; test( macro , '-24' , -5678 , '136272' ) ; +test( macro , '24' , 94906265 , '2277750360' ) ; +test( macro , '-24' , 94906265 , '-2277750360' ) ; +test( macro , '24' , -94906265 , '-2277750360' ) ; +test( macro , '-24' , -94906265 , '2277750360' ) ; +test( macro , '24' , 94906266 , '2277750384' ) ; +test( macro , '-24' , 94906266 , '-2277750384' ) ; +test( macro , '24' , -94906266 , '-2277750384' ) ; +test( macro , '-24' , -94906266 , '2277750384' ) ; test( macro , '24' , 1073741824 , '25769803776' ) ; test( macro , '-24' , 1073741824 , '-25769803776' ) ; test( macro , '24' , -1073741824 , '-25769803776' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '153306' ) ; test( macro , '-27' , 5678 , '-153306' ) ; test( macro , '27' , -5678 , '-153306' ) ; test( macro , '-27' , -5678 , '153306' ) ; +test( macro , '27' , 94906265 , '2562469155' ) ; +test( macro , '-27' , 94906265 , '-2562469155' ) ; +test( macro , '27' , -94906265 , '-2562469155' ) ; +test( macro , '-27' , -94906265 , '2562469155' ) ; +test( macro , '27' , 94906266 , '2562469182' ) ; +test( macro , '-27' , 94906266 , '-2562469182' ) ; +test( macro , '27' , -94906266 , '-2562469182' ) ; +test( macro , '-27' , -94906266 , '2562469182' ) ; test( macro , '27' , 1073741824 , '28991029248' ) ; test( macro , '-27' , 1073741824 , '-28991029248' ) ; test( macro , '27' , -1073741824 , '-28991029248' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '164662' ) ; test( macro , '-29' , 5678 , '-164662' ) ; test( macro , '29' , -5678 , '-164662' ) ; test( macro , '-29' , -5678 , '164662' ) ; +test( macro , '29' , 94906265 , '2752281685' ) ; +test( macro , '-29' , 94906265 , '-2752281685' ) ; +test( macro , '29' , -94906265 , '-2752281685' ) ; +test( macro , '-29' , -94906265 , '2752281685' ) ; +test( macro , '29' , 94906266 , '2752281714' ) ; +test( macro , '-29' , 94906266 , '-2752281714' ) ; +test( macro , '29' , -94906266 , '-2752281714' ) ; +test( macro , '-29' , -94906266 , '2752281714' ) ; test( macro , '29' , 1073741824 , '31138512896' ) ; test( macro , '-29' , 1073741824 , '-31138512896' ) ; test( macro , '29' , -1073741824 , '-31138512896' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '7006652' ) ; test( macro , '-1234' , 5678 , '-7006652' ) ; test( macro , '1234' , -5678 , '-7006652' ) ; test( macro , '-1234' , -5678 , '7006652' ) ; +test( macro , '1234' , 94906265 , '117114331010' ) ; +test( macro , '-1234' , 94906265 , '-117114331010' ) ; +test( macro , '1234' , -94906265 , '-117114331010' ) ; +test( macro , '-1234' , -94906265 , '117114331010' ) ; +test( macro , '1234' , 94906266 , '117114332244' ) ; +test( macro , '-1234' , 94906266 , '-117114332244' ) ; +test( macro , '1234' , -94906266 , '-117114332244' ) ; +test( macro , '-1234' , -94906266 , '117114332244' ) ; test( macro , '1234' , 1073741824 , '1324997410816' ) ; test( macro , '-1234' , 1073741824 , '-1324997410816' ) ; test( macro , '1234' , -1073741824 , '-1324997410816' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '32239684' ) ; test( macro , '-5678' , 5678 , '-32239684' ) ; test( macro , '5678' , -5678 , '-32239684' ) ; test( macro , '-5678' , -5678 , '32239684' ) ; +test( macro , '5678' , 94906265 , '538877772670' ) ; +test( macro , '-5678' , 94906265 , '-538877772670' ) ; +test( macro , '5678' , -94906265 , '-538877772670' ) ; +test( macro , '-5678' , -94906265 , '538877772670' ) ; +test( macro , '5678' , 94906266 , '538877778348' ) ; +test( macro , '-5678' , 94906266 , '-538877778348' ) ; +test( macro , '5678' , -94906266 , '-538877778348' ) ; +test( macro , '-5678' , -94906266 , '538877778348' ) ; test( macro , '5678' , 1073741824 , '6096706076672' ) ; test( macro , '-5678' , 1073741824 , '-6096706076672' ) ; test( macro , '5678' , -1073741824 , '-6096706076672' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '293416906791080618' ) ; test( macro , '-5678' , 51676101935731 , '-293416906791080618' ) ; test( macro , '5678' , -51676101935731 , '-293416906791080618' ) ; test( macro , '-5678' , -51676101935731 , '293416906791080618' ) ; +test( macro , '94906265' , 1 , '94906265' ) ; +test( macro , '-94906265' , 1 , '-94906265' ) ; +test( macro , '94906265' , -1 , '-94906265' ) ; +test( macro , '-94906265' , -1 , '94906265' ) ; +test( macro , '94906265' , 3 , '284718795' ) ; +test( macro , '-94906265' , 3 , '-284718795' ) ; +test( macro , '94906265' , -3 , '-284718795' ) ; +test( macro , '-94906265' , -3 , '284718795' ) ; +test( macro , '94906265' , 7 , '664343855' ) ; +test( macro , '-94906265' , 7 , '-664343855' ) ; +test( macro , '94906265' , -7 , '-664343855' ) ; +test( macro , '-94906265' , -7 , '664343855' ) ; +test( macro , '94906265' , 9 , '854156385' ) ; +test( macro , '-94906265' , 9 , '-854156385' ) ; +test( macro , '94906265' , -9 , '-854156385' ) ; +test( macro , '-94906265' , -9 , '854156385' ) ; +test( macro , '94906265' , 11 , '1043968915' ) ; +test( macro , '-94906265' , 11 , '-1043968915' ) ; +test( macro , '94906265' , -11 , '-1043968915' ) ; +test( macro , '-94906265' , -11 , '1043968915' ) ; +test( macro , '94906265' , 17 , '1613406505' ) ; +test( macro , '-94906265' , 17 , '-1613406505' ) ; +test( macro , '94906265' , -17 , '-1613406505' ) ; +test( macro , '-94906265' , -17 , '1613406505' ) ; +test( macro , '94906265' , 22 , '2087937830' ) ; +test( macro , '-94906265' , 22 , '-2087937830' ) ; +test( macro , '94906265' , -22 , '-2087937830' ) ; +test( macro , '-94906265' , -22 , '2087937830' ) ; +test( macro , '94906265' , 24 , '2277750360' ) ; +test( macro , '-94906265' , 24 , '-2277750360' ) ; +test( macro , '94906265' , -24 , '-2277750360' ) ; +test( macro , '-94906265' , -24 , '2277750360' ) ; +test( macro , '94906265' , 27 , '2562469155' ) ; +test( macro , '-94906265' , 27 , '-2562469155' ) ; +test( macro , '94906265' , -27 , '-2562469155' ) ; +test( macro , '-94906265' , -27 , '2562469155' ) ; +test( macro , '94906265' , 29 , '2752281685' ) ; +test( macro , '-94906265' , 29 , '-2752281685' ) ; +test( macro , '94906265' , -29 , '-2752281685' ) ; +test( macro , '-94906265' , -29 , '2752281685' ) ; +test( macro , '94906265' , 1234 , '117114331010' ) ; +test( macro , '-94906265' , 1234 , '-117114331010' ) ; +test( macro , '94906265' , -1234 , '-117114331010' ) ; +test( macro , '-94906265' , -1234 , '117114331010' ) ; +test( macro , '94906265' , 5678 , '538877772670' ) ; +test( macro , '-94906265' , 5678 , '-538877772670' ) ; +test( macro , '94906265' , -5678 , '-538877772670' ) ; +test( macro , '-94906265' , -5678 , '538877772670' ) ; +test( macro , '94906265' , 94906265 , '9007199136250225' ) ; +test( macro , '-94906265' , 94906265 , '-9007199136250225' ) ; +test( macro , '94906265' , -94906265 , '-9007199136250225' ) ; +test( macro , '-94906265' , -94906265 , '9007199136250225' ) ; +test( macro , '94906265' , 94906266 , '9007199231156490' ) ; +test( macro , '-94906265' , 94906266 , '-9007199231156490' ) ; +test( macro , '94906265' , -94906266 , '-9007199231156490' ) ; +test( macro , '-94906265' , -94906266 , '9007199231156490' ) ; +test( macro , '94906265' , 1073741824 , '101904826090127360' ) ; +test( macro , '-94906265' , 1073741824 , '-101904826090127360' ) ; +test( macro , '94906265' , -1073741824 , '-101904826090127360' ) ; +test( macro , '-94906265' , -1073741824 , '101904826090127360' ) ; +test( macro , '94906265' , 51676101935731 , '4904385824479499254715' ) ; +test( macro , '-94906265' , 51676101935731 , '-4904385824479499254715' ) ; +test( macro , '94906265' , -51676101935731 , '-4904385824479499254715' ) ; +test( macro , '-94906265' , -51676101935731 , '4904385824479499254715' ) ; +test( macro , '94906266' , 1 , '94906266' ) ; +test( macro , '-94906266' , 1 , '-94906266' ) ; +test( macro , '94906266' , -1 , '-94906266' ) ; +test( macro , '-94906266' , -1 , '94906266' ) ; +test( macro , '94906266' , 3 , '284718798' ) ; +test( macro , '-94906266' , 3 , '-284718798' ) ; +test( macro , '94906266' , -3 , '-284718798' ) ; +test( macro , '-94906266' , -3 , '284718798' ) ; +test( macro , '94906266' , 7 , '664343862' ) ; +test( macro , '-94906266' , 7 , '-664343862' ) ; +test( macro , '94906266' , -7 , '-664343862' ) ; +test( macro , '-94906266' , -7 , '664343862' ) ; +test( macro , '94906266' , 9 , '854156394' ) ; +test( macro , '-94906266' , 9 , '-854156394' ) ; +test( macro , '94906266' , -9 , '-854156394' ) ; +test( macro , '-94906266' , -9 , '854156394' ) ; +test( macro , '94906266' , 11 , '1043968926' ) ; +test( macro , '-94906266' , 11 , '-1043968926' ) ; +test( macro , '94906266' , -11 , '-1043968926' ) ; +test( macro , '-94906266' , -11 , '1043968926' ) ; +test( macro , '94906266' , 17 , '1613406522' ) ; +test( macro , '-94906266' , 17 , '-1613406522' ) ; +test( macro , '94906266' , -17 , '-1613406522' ) ; +test( macro , '-94906266' , -17 , '1613406522' ) ; +test( macro , '94906266' , 22 , '2087937852' ) ; +test( macro , '-94906266' , 22 , '-2087937852' ) ; +test( macro , '94906266' , -22 , '-2087937852' ) ; +test( macro , '-94906266' , -22 , '2087937852' ) ; +test( macro , '94906266' , 24 , '2277750384' ) ; +test( macro , '-94906266' , 24 , '-2277750384' ) ; +test( macro , '94906266' , -24 , '-2277750384' ) ; +test( macro , '-94906266' , -24 , '2277750384' ) ; +test( macro , '94906266' , 27 , '2562469182' ) ; +test( macro , '-94906266' , 27 , '-2562469182' ) ; +test( macro , '94906266' , -27 , '-2562469182' ) ; +test( macro , '-94906266' , -27 , '2562469182' ) ; +test( macro , '94906266' , 29 , '2752281714' ) ; +test( macro , '-94906266' , 29 , '-2752281714' ) ; +test( macro , '94906266' , -29 , '-2752281714' ) ; +test( macro , '-94906266' , -29 , '2752281714' ) ; +test( macro , '94906266' , 1234 , '117114332244' ) ; +test( macro , '-94906266' , 1234 , '-117114332244' ) ; +test( macro , '94906266' , -1234 , '-117114332244' ) ; +test( macro , '-94906266' , -1234 , '117114332244' ) ; +test( macro , '94906266' , 5678 , '538877778348' ) ; +test( macro , '-94906266' , 5678 , '-538877778348' ) ; +test( macro , '94906266' , -5678 , '-538877778348' ) ; +test( macro , '-94906266' , -5678 , '538877778348' ) ; +test( macro , '94906266' , 94906265 , '9007199231156490' ) ; +test( macro , '-94906266' , 94906265 , '-9007199231156490' ) ; +test( macro , '94906266' , -94906265 , '-9007199231156490' ) ; +test( macro , '-94906266' , -94906265 , '9007199231156490' ) ; +test( macro , '94906266' , 94906266 , '9007199326062756' ) ; +test( macro , '-94906266' , 94906266 , '-9007199326062756' ) ; +test( macro , '94906266' , -94906266 , '-9007199326062756' ) ; +test( macro , '-94906266' , -94906266 , '9007199326062756' ) ; +test( macro , '94906266' , 1073741824 , '101904827163869184' ) ; +test( macro , '-94906266' , 1073741824 , '-101904827163869184' ) ; +test( macro , '94906266' , -1073741824 , '-101904827163869184' ) ; +test( macro , '-94906266' , -1073741824 , '101904827163869184' ) ; +test( macro , '94906266' , 51676101935731 , '4904385876155601190446' ) ; +test( macro , '-94906266' , 51676101935731 , '-4904385876155601190446' ) ; +test( macro , '94906266' , -51676101935731 , '-4904385876155601190446' ) ; +test( macro , '-94906266' , -51676101935731 , '4904385876155601190446' ) ; test( macro , '1073741824' , 1 , '1073741824' ) ; test( macro , '-1073741824' , 1 , '-1073741824' ) ; test( macro , '1073741824' , -1 , '-1073741824' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '6096706076672' ) ; test( macro , '-1073741824' , 5678 , '-6096706076672' ) ; test( macro , '1073741824' , -5678 , '-6096706076672' ) ; test( macro , '-1073741824' , -5678 , '6096706076672' ) ; +test( macro , '1073741824' , 94906265 , '101904826090127360' ) ; +test( macro , '-1073741824' , 94906265 , '-101904826090127360' ) ; +test( macro , '1073741824' , -94906265 , '-101904826090127360' ) ; +test( macro , '-1073741824' , -94906265 , '101904826090127360' ) ; +test( macro , '1073741824' , 94906266 , '101904827163869184' ) ; +test( macro , '-1073741824' , 94906266 , '-101904827163869184' ) ; +test( macro , '1073741824' , -94906266 , '-101904827163869184' ) ; +test( macro , '-1073741824' , -94906266 , '101904827163869184' ) ; test( macro , '1073741824' , 1073741824 , '1152921504606846976' ) ; test( macro , '-1073741824' , 1073741824 , '-1152921504606846976' ) ; test( macro , '1073741824' , -1073741824 , '-1152921504606846976' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '293416906791080618' ) ; test( macro , '-51676101935731' , 5678 , '-293416906791080618' ) ; test( macro , '51676101935731' , -5678 , '-293416906791080618' ) ; test( macro , '-51676101935731' , -5678 , '293416906791080618' ) ; +test( macro , '51676101935731' , 94906265 , '4904385824479499254715' ) ; +test( macro , '-51676101935731' , 94906265 , '-4904385824479499254715' ) ; +test( macro , '51676101935731' , -94906265 , '-4904385824479499254715' ) ; +test( macro , '-51676101935731' , -94906265 , '4904385824479499254715' ) ; +test( macro , '51676101935731' , 94906266 , '4904385876155601190446' ) ; +test( macro , '-51676101935731' , 94906266 , '-4904385876155601190446' ) ; +test( macro , '51676101935731' , -94906266 , '-4904385876155601190446' ) ; +test( macro , '-51676101935731' , -94906266 , '4904385876155601190446' ) ; test( macro , '51676101935731' , 1073741824 , '55486791949681734713344' ) ; test( macro , '-51676101935731' , 1073741824 , '-55486791949681734713344' ) ; test( macro , '51676101935731' , -1073741824 , '-55486791949681734713344' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '4076224774114338999037473822' test( macro , '-717897987691852588770249' , 5678 , '-4076224774114338999037473822' ) ; test( macro , '717897987691852588770249' , -5678 , '-4076224774114338999037473822' ) ; test( macro , '-717897987691852588770249' , -5678 , '4076224774114338999037473822' ) ; +test( macro , '717897987691852588770249' , 94906265 , '68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , 94906266 , '68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-68133017380747687822617864480234' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '68133017380747687822617864480234' ) ; test( macro , '717897987691852588770249' , 1073741824 , '770837094750179348605289078194176' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-770837094750179348605289078194176' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-770837094750179348605289078194176' ) ; diff --git a/test/src/integer/arithmetic/isub.js b/test/src/integer/arithmetic/isub.js index f72673f..4fc6f65 100644 --- a/test/src/integer/arithmetic/isub.js +++ b/test/src/integer/arithmetic/isub.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '-5677' ) ; test( macro , '-1' , '5678' , '-5679' ) ; test( macro , '1' , '-5678' , '5679' ) ; test( macro , '-1' , '-5678' , '5677' ) ; +test( macro , '1' , '94906265' , '-94906264' ) ; +test( macro , '-1' , '94906265' , '-94906266' ) ; +test( macro , '1' , '-94906265' , '94906266' ) ; +test( macro , '-1' , '-94906265' , '94906264' ) ; +test( macro , '1' , '94906266' , '-94906265' ) ; +test( macro , '-1' , '94906266' , '-94906267' ) ; +test( macro , '1' , '-94906266' , '94906267' ) ; +test( macro , '-1' , '-94906266' , '94906265' ) ; test( macro , '1' , '1073741824' , '-1073741823' ) ; test( macro , '-1' , '1073741824' , '-1073741825' ) ; test( macro , '1' , '-1073741824' , '1073741825' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '-5675' ) ; test( macro , '-3' , '5678' , '-5681' ) ; test( macro , '3' , '-5678' , '5681' ) ; test( macro , '-3' , '-5678' , '5675' ) ; +test( macro , '3' , '94906265' , '-94906262' ) ; +test( macro , '-3' , '94906265' , '-94906268' ) ; +test( macro , '3' , '-94906265' , '94906268' ) ; +test( macro , '-3' , '-94906265' , '94906262' ) ; +test( macro , '3' , '94906266' , '-94906263' ) ; +test( macro , '-3' , '94906266' , '-94906269' ) ; +test( macro , '3' , '-94906266' , '94906269' ) ; +test( macro , '-3' , '-94906266' , '94906263' ) ; test( macro , '3' , '1073741824' , '-1073741821' ) ; test( macro , '-3' , '1073741824' , '-1073741827' ) ; test( macro , '3' , '-1073741824' , '1073741827' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '-5671' ) ; test( macro , '-7' , '5678' , '-5685' ) ; test( macro , '7' , '-5678' , '5685' ) ; test( macro , '-7' , '-5678' , '5671' ) ; +test( macro , '7' , '94906265' , '-94906258' ) ; +test( macro , '-7' , '94906265' , '-94906272' ) ; +test( macro , '7' , '-94906265' , '94906272' ) ; +test( macro , '-7' , '-94906265' , '94906258' ) ; +test( macro , '7' , '94906266' , '-94906259' ) ; +test( macro , '-7' , '94906266' , '-94906273' ) ; +test( macro , '7' , '-94906266' , '94906273' ) ; +test( macro , '-7' , '-94906266' , '94906259' ) ; test( macro , '7' , '1073741824' , '-1073741817' ) ; test( macro , '-7' , '1073741824' , '-1073741831' ) ; test( macro , '7' , '-1073741824' , '1073741831' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '-5669' ) ; test( macro , '-9' , '5678' , '-5687' ) ; test( macro , '9' , '-5678' , '5687' ) ; test( macro , '-9' , '-5678' , '5669' ) ; +test( macro , '9' , '94906265' , '-94906256' ) ; +test( macro , '-9' , '94906265' , '-94906274' ) ; +test( macro , '9' , '-94906265' , '94906274' ) ; +test( macro , '-9' , '-94906265' , '94906256' ) ; +test( macro , '9' , '94906266' , '-94906257' ) ; +test( macro , '-9' , '94906266' , '-94906275' ) ; +test( macro , '9' , '-94906266' , '94906275' ) ; +test( macro , '-9' , '-94906266' , '94906257' ) ; test( macro , '9' , '1073741824' , '-1073741815' ) ; test( macro , '-9' , '1073741824' , '-1073741833' ) ; test( macro , '9' , '-1073741824' , '1073741833' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '-5667' ) ; test( macro , '-11' , '5678' , '-5689' ) ; test( macro , '11' , '-5678' , '5689' ) ; test( macro , '-11' , '-5678' , '5667' ) ; +test( macro , '11' , '94906265' , '-94906254' ) ; +test( macro , '-11' , '94906265' , '-94906276' ) ; +test( macro , '11' , '-94906265' , '94906276' ) ; +test( macro , '-11' , '-94906265' , '94906254' ) ; +test( macro , '11' , '94906266' , '-94906255' ) ; +test( macro , '-11' , '94906266' , '-94906277' ) ; +test( macro , '11' , '-94906266' , '94906277' ) ; +test( macro , '-11' , '-94906266' , '94906255' ) ; test( macro , '11' , '1073741824' , '-1073741813' ) ; test( macro , '-11' , '1073741824' , '-1073741835' ) ; test( macro , '11' , '-1073741824' , '1073741835' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '-5661' ) ; test( macro , '-17' , '5678' , '-5695' ) ; test( macro , '17' , '-5678' , '5695' ) ; test( macro , '-17' , '-5678' , '5661' ) ; +test( macro , '17' , '94906265' , '-94906248' ) ; +test( macro , '-17' , '94906265' , '-94906282' ) ; +test( macro , '17' , '-94906265' , '94906282' ) ; +test( macro , '-17' , '-94906265' , '94906248' ) ; +test( macro , '17' , '94906266' , '-94906249' ) ; +test( macro , '-17' , '94906266' , '-94906283' ) ; +test( macro , '17' , '-94906266' , '94906283' ) ; +test( macro , '-17' , '-94906266' , '94906249' ) ; test( macro , '17' , '1073741824' , '-1073741807' ) ; test( macro , '-17' , '1073741824' , '-1073741841' ) ; test( macro , '17' , '-1073741824' , '1073741841' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '-5656' ) ; test( macro , '-22' , '5678' , '-5700' ) ; test( macro , '22' , '-5678' , '5700' ) ; test( macro , '-22' , '-5678' , '5656' ) ; +test( macro , '22' , '94906265' , '-94906243' ) ; +test( macro , '-22' , '94906265' , '-94906287' ) ; +test( macro , '22' , '-94906265' , '94906287' ) ; +test( macro , '-22' , '-94906265' , '94906243' ) ; +test( macro , '22' , '94906266' , '-94906244' ) ; +test( macro , '-22' , '94906266' , '-94906288' ) ; +test( macro , '22' , '-94906266' , '94906288' ) ; +test( macro , '-22' , '-94906266' , '94906244' ) ; test( macro , '22' , '1073741824' , '-1073741802' ) ; test( macro , '-22' , '1073741824' , '-1073741846' ) ; test( macro , '22' , '-1073741824' , '1073741846' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '-5654' ) ; test( macro , '-24' , '5678' , '-5702' ) ; test( macro , '24' , '-5678' , '5702' ) ; test( macro , '-24' , '-5678' , '5654' ) ; +test( macro , '24' , '94906265' , '-94906241' ) ; +test( macro , '-24' , '94906265' , '-94906289' ) ; +test( macro , '24' , '-94906265' , '94906289' ) ; +test( macro , '-24' , '-94906265' , '94906241' ) ; +test( macro , '24' , '94906266' , '-94906242' ) ; +test( macro , '-24' , '94906266' , '-94906290' ) ; +test( macro , '24' , '-94906266' , '94906290' ) ; +test( macro , '-24' , '-94906266' , '94906242' ) ; test( macro , '24' , '1073741824' , '-1073741800' ) ; test( macro , '-24' , '1073741824' , '-1073741848' ) ; test( macro , '24' , '-1073741824' , '1073741848' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '-5651' ) ; test( macro , '-27' , '5678' , '-5705' ) ; test( macro , '27' , '-5678' , '5705' ) ; test( macro , '-27' , '-5678' , '5651' ) ; +test( macro , '27' , '94906265' , '-94906238' ) ; +test( macro , '-27' , '94906265' , '-94906292' ) ; +test( macro , '27' , '-94906265' , '94906292' ) ; +test( macro , '-27' , '-94906265' , '94906238' ) ; +test( macro , '27' , '94906266' , '-94906239' ) ; +test( macro , '-27' , '94906266' , '-94906293' ) ; +test( macro , '27' , '-94906266' , '94906293' ) ; +test( macro , '-27' , '-94906266' , '94906239' ) ; test( macro , '27' , '1073741824' , '-1073741797' ) ; test( macro , '-27' , '1073741824' , '-1073741851' ) ; test( macro , '27' , '-1073741824' , '1073741851' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '-5649' ) ; test( macro , '-29' , '5678' , '-5707' ) ; test( macro , '29' , '-5678' , '5707' ) ; test( macro , '-29' , '-5678' , '5649' ) ; +test( macro , '29' , '94906265' , '-94906236' ) ; +test( macro , '-29' , '94906265' , '-94906294' ) ; +test( macro , '29' , '-94906265' , '94906294' ) ; +test( macro , '-29' , '-94906265' , '94906236' ) ; +test( macro , '29' , '94906266' , '-94906237' ) ; +test( macro , '-29' , '94906266' , '-94906295' ) ; +test( macro , '29' , '-94906266' , '94906295' ) ; +test( macro , '-29' , '-94906266' , '94906237' ) ; test( macro , '29' , '1073741824' , '-1073741795' ) ; test( macro , '-29' , '1073741824' , '-1073741853' ) ; test( macro , '29' , '-1073741824' , '1073741853' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '-4444' ) ; test( macro , '-1234' , '5678' , '-6912' ) ; test( macro , '1234' , '-5678' , '6912' ) ; test( macro , '-1234' , '-5678' , '4444' ) ; +test( macro , '1234' , '94906265' , '-94905031' ) ; +test( macro , '-1234' , '94906265' , '-94907499' ) ; +test( macro , '1234' , '-94906265' , '94907499' ) ; +test( macro , '-1234' , '-94906265' , '94905031' ) ; +test( macro , '1234' , '94906266' , '-94905032' ) ; +test( macro , '-1234' , '94906266' , '-94907500' ) ; +test( macro , '1234' , '-94906266' , '94907500' ) ; +test( macro , '-1234' , '-94906266' , '94905032' ) ; test( macro , '1234' , '1073741824' , '-1073740590' ) ; test( macro , '-1234' , '1073741824' , '-1073743058' ) ; test( macro , '1234' , '-1073741824' , '1073743058' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '0' ) ; test( macro , '-5678' , '5678' , '-11356' ) ; test( macro , '5678' , '-5678' , '11356' ) ; test( macro , '-5678' , '-5678' , '0' ) ; +test( macro , '5678' , '94906265' , '-94900587' ) ; +test( macro , '-5678' , '94906265' , '-94911943' ) ; +test( macro , '5678' , '-94906265' , '94911943' ) ; +test( macro , '-5678' , '-94906265' , '94900587' ) ; +test( macro , '5678' , '94906266' , '-94900588' ) ; +test( macro , '-5678' , '94906266' , '-94911944' ) ; +test( macro , '5678' , '-94906266' , '94911944' ) ; +test( macro , '-5678' , '-94906266' , '94900588' ) ; test( macro , '5678' , '1073741824' , '-1073736146' ) ; test( macro , '-5678' , '1073741824' , '-1073747502' ) ; test( macro , '5678' , '-1073741824' , '1073747502' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '-717897987691852588764571' test( macro , '-5678' , '717897987691852588770249' , '-717897987691852588775927' ) ; test( macro , '5678' , '-717897987691852588770249' , '717897987691852588775927' ) ; test( macro , '-5678' , '-717897987691852588770249' , '717897987691852588764571' ) ; +test( macro , '94906265' , '1' , '94906264' ) ; +test( macro , '-94906265' , '1' , '-94906266' ) ; +test( macro , '94906265' , '-1' , '94906266' ) ; +test( macro , '-94906265' , '-1' , '-94906264' ) ; +test( macro , '94906265' , '3' , '94906262' ) ; +test( macro , '-94906265' , '3' , '-94906268' ) ; +test( macro , '94906265' , '-3' , '94906268' ) ; +test( macro , '-94906265' , '-3' , '-94906262' ) ; +test( macro , '94906265' , '7' , '94906258' ) ; +test( macro , '-94906265' , '7' , '-94906272' ) ; +test( macro , '94906265' , '-7' , '94906272' ) ; +test( macro , '-94906265' , '-7' , '-94906258' ) ; +test( macro , '94906265' , '9' , '94906256' ) ; +test( macro , '-94906265' , '9' , '-94906274' ) ; +test( macro , '94906265' , '-9' , '94906274' ) ; +test( macro , '-94906265' , '-9' , '-94906256' ) ; +test( macro , '94906265' , '11' , '94906254' ) ; +test( macro , '-94906265' , '11' , '-94906276' ) ; +test( macro , '94906265' , '-11' , '94906276' ) ; +test( macro , '-94906265' , '-11' , '-94906254' ) ; +test( macro , '94906265' , '17' , '94906248' ) ; +test( macro , '-94906265' , '17' , '-94906282' ) ; +test( macro , '94906265' , '-17' , '94906282' ) ; +test( macro , '-94906265' , '-17' , '-94906248' ) ; +test( macro , '94906265' , '22' , '94906243' ) ; +test( macro , '-94906265' , '22' , '-94906287' ) ; +test( macro , '94906265' , '-22' , '94906287' ) ; +test( macro , '-94906265' , '-22' , '-94906243' ) ; +test( macro , '94906265' , '24' , '94906241' ) ; +test( macro , '-94906265' , '24' , '-94906289' ) ; +test( macro , '94906265' , '-24' , '94906289' ) ; +test( macro , '-94906265' , '-24' , '-94906241' ) ; +test( macro , '94906265' , '27' , '94906238' ) ; +test( macro , '-94906265' , '27' , '-94906292' ) ; +test( macro , '94906265' , '-27' , '94906292' ) ; +test( macro , '-94906265' , '-27' , '-94906238' ) ; +test( macro , '94906265' , '29' , '94906236' ) ; +test( macro , '-94906265' , '29' , '-94906294' ) ; +test( macro , '94906265' , '-29' , '94906294' ) ; +test( macro , '-94906265' , '-29' , '-94906236' ) ; +test( macro , '94906265' , '1234' , '94905031' ) ; +test( macro , '-94906265' , '1234' , '-94907499' ) ; +test( macro , '94906265' , '-1234' , '94907499' ) ; +test( macro , '-94906265' , '-1234' , '-94905031' ) ; +test( macro , '94906265' , '5678' , '94900587' ) ; +test( macro , '-94906265' , '5678' , '-94911943' ) ; +test( macro , '94906265' , '-5678' , '94911943' ) ; +test( macro , '-94906265' , '-5678' , '-94900587' ) ; +test( macro , '94906265' , '94906265' , '0' ) ; +test( macro , '-94906265' , '94906265' , '-189812530' ) ; +test( macro , '94906265' , '-94906265' , '189812530' ) ; +test( macro , '-94906265' , '-94906265' , '0' ) ; +test( macro , '94906265' , '94906266' , '-1' ) ; +test( macro , '-94906265' , '94906266' , '-189812531' ) ; +test( macro , '94906265' , '-94906266' , '189812531' ) ; +test( macro , '-94906265' , '-94906266' , '1' ) ; +test( macro , '94906265' , '1073741824' , '-978835559' ) ; +test( macro , '-94906265' , '1073741824' , '-1168648089' ) ; +test( macro , '94906265' , '-1073741824' , '1168648089' ) ; +test( macro , '-94906265' , '-1073741824' , '978835559' ) ; +test( macro , '94906265' , '51676101935731' , '-51676007029466' ) ; +test( macro , '-94906265' , '51676101935731' , '-51676196841996' ) ; +test( macro , '94906265' , '-51676101935731' , '51676196841996' ) ; +test( macro , '-94906265' , '-51676101935731' , '51676007029466' ) ; +test( macro , '94906265' , '717897987691852588770249' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-717897987691852683676514' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '717897987691852683676514' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '717897987691852493863984' ) ; +test( macro , '94906266' , '1' , '94906265' ) ; +test( macro , '-94906266' , '1' , '-94906267' ) ; +test( macro , '94906266' , '-1' , '94906267' ) ; +test( macro , '-94906266' , '-1' , '-94906265' ) ; +test( macro , '94906266' , '3' , '94906263' ) ; +test( macro , '-94906266' , '3' , '-94906269' ) ; +test( macro , '94906266' , '-3' , '94906269' ) ; +test( macro , '-94906266' , '-3' , '-94906263' ) ; +test( macro , '94906266' , '7' , '94906259' ) ; +test( macro , '-94906266' , '7' , '-94906273' ) ; +test( macro , '94906266' , '-7' , '94906273' ) ; +test( macro , '-94906266' , '-7' , '-94906259' ) ; +test( macro , '94906266' , '9' , '94906257' ) ; +test( macro , '-94906266' , '9' , '-94906275' ) ; +test( macro , '94906266' , '-9' , '94906275' ) ; +test( macro , '-94906266' , '-9' , '-94906257' ) ; +test( macro , '94906266' , '11' , '94906255' ) ; +test( macro , '-94906266' , '11' , '-94906277' ) ; +test( macro , '94906266' , '-11' , '94906277' ) ; +test( macro , '-94906266' , '-11' , '-94906255' ) ; +test( macro , '94906266' , '17' , '94906249' ) ; +test( macro , '-94906266' , '17' , '-94906283' ) ; +test( macro , '94906266' , '-17' , '94906283' ) ; +test( macro , '-94906266' , '-17' , '-94906249' ) ; +test( macro , '94906266' , '22' , '94906244' ) ; +test( macro , '-94906266' , '22' , '-94906288' ) ; +test( macro , '94906266' , '-22' , '94906288' ) ; +test( macro , '-94906266' , '-22' , '-94906244' ) ; +test( macro , '94906266' , '24' , '94906242' ) ; +test( macro , '-94906266' , '24' , '-94906290' ) ; +test( macro , '94906266' , '-24' , '94906290' ) ; +test( macro , '-94906266' , '-24' , '-94906242' ) ; +test( macro , '94906266' , '27' , '94906239' ) ; +test( macro , '-94906266' , '27' , '-94906293' ) ; +test( macro , '94906266' , '-27' , '94906293' ) ; +test( macro , '-94906266' , '-27' , '-94906239' ) ; +test( macro , '94906266' , '29' , '94906237' ) ; +test( macro , '-94906266' , '29' , '-94906295' ) ; +test( macro , '94906266' , '-29' , '94906295' ) ; +test( macro , '-94906266' , '-29' , '-94906237' ) ; +test( macro , '94906266' , '1234' , '94905032' ) ; +test( macro , '-94906266' , '1234' , '-94907500' ) ; +test( macro , '94906266' , '-1234' , '94907500' ) ; +test( macro , '-94906266' , '-1234' , '-94905032' ) ; +test( macro , '94906266' , '5678' , '94900588' ) ; +test( macro , '-94906266' , '5678' , '-94911944' ) ; +test( macro , '94906266' , '-5678' , '94911944' ) ; +test( macro , '-94906266' , '-5678' , '-94900588' ) ; +test( macro , '94906266' , '94906265' , '1' ) ; +test( macro , '-94906266' , '94906265' , '-189812531' ) ; +test( macro , '94906266' , '-94906265' , '189812531' ) ; +test( macro , '-94906266' , '-94906265' , '-1' ) ; +test( macro , '94906266' , '94906266' , '0' ) ; +test( macro , '-94906266' , '94906266' , '-189812532' ) ; +test( macro , '94906266' , '-94906266' , '189812532' ) ; +test( macro , '-94906266' , '-94906266' , '0' ) ; +test( macro , '94906266' , '1073741824' , '-978835558' ) ; +test( macro , '-94906266' , '1073741824' , '-1168648090' ) ; +test( macro , '94906266' , '-1073741824' , '1168648090' ) ; +test( macro , '-94906266' , '-1073741824' , '978835558' ) ; +test( macro , '94906266' , '51676101935731' , '-51676007029465' ) ; +test( macro , '-94906266' , '51676101935731' , '-51676196841997' ) ; +test( macro , '94906266' , '-51676101935731' , '51676196841997' ) ; +test( macro , '-94906266' , '-51676101935731' , '51676007029465' ) ; +test( macro , '94906266' , '717897987691852588770249' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-717897987691852683676515' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '717897987691852683676515' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '717897987691852493863983' ) ; test( macro , '1073741824' , '1' , '1073741823' ) ; test( macro , '-1073741824' , '1' , '-1073741825' ) ; test( macro , '1073741824' , '-1' , '1073741825' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '1073736146' ) ; test( macro , '-1073741824' , '5678' , '-1073747502' ) ; test( macro , '1073741824' , '-5678' , '1073747502' ) ; test( macro , '-1073741824' , '-5678' , '-1073736146' ) ; +test( macro , '1073741824' , '94906265' , '978835559' ) ; +test( macro , '-1073741824' , '94906265' , '-1168648089' ) ; +test( macro , '1073741824' , '-94906265' , '1168648089' ) ; +test( macro , '-1073741824' , '-94906265' , '-978835559' ) ; +test( macro , '1073741824' , '94906266' , '978835558' ) ; +test( macro , '-1073741824' , '94906266' , '-1168648090' ) ; +test( macro , '1073741824' , '-94906266' , '1168648090' ) ; +test( macro , '-1073741824' , '-94906266' , '-978835558' ) ; test( macro , '1073741824' , '1073741824' , '0' ) ; test( macro , '-1073741824' , '1073741824' , '-2147483648' ) ; test( macro , '1073741824' , '-1073741824' , '2147483648' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '51676101930053' ) ; test( macro , '-51676101935731' , '5678' , '-51676101941409' ) ; test( macro , '51676101935731' , '-5678' , '51676101941409' ) ; test( macro , '-51676101935731' , '-5678' , '-51676101930053' ) ; +test( macro , '51676101935731' , '94906265' , '51676007029466' ) ; +test( macro , '-51676101935731' , '94906265' , '-51676196841996' ) ; +test( macro , '51676101935731' , '-94906265' , '51676196841996' ) ; +test( macro , '-51676101935731' , '-94906265' , '-51676007029466' ) ; +test( macro , '51676101935731' , '94906266' , '51676007029465' ) ; +test( macro , '-51676101935731' , '94906266' , '-51676196841997' ) ; +test( macro , '51676101935731' , '-94906266' , '51676196841997' ) ; +test( macro , '-51676101935731' , '-94906266' , '-51676007029465' ) ; test( macro , '51676101935731' , '1073741824' , '51675028193907' ) ; test( macro , '-51676101935731' , '1073741824' , '-51677175677555' ) ; test( macro , '51676101935731' , '-1073741824' , '51677175677555' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '717897987691852588764571' ) test( macro , '-717897987691852588770249' , '5678' , '-717897987691852588775927' ) ; test( macro , '717897987691852588770249' , '-5678' , '717897987691852588775927' ) ; test( macro , '-717897987691852588770249' , '-5678' , '-717897987691852588764571' ) ; +test( macro , '717897987691852588770249' , '94906265' , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , '94906266' , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-717897987691852683676515' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '-717897987691852493863983' ) ; test( macro , '717897987691852588770249' , '1073741824' , '717897987691851515028425' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-717897987691853662512073' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '717897987691853662512073' ) ; diff --git a/test/src/integer/arithmetic/isubn.js b/test/src/integer/arithmetic/isubn.js index de16bb3..38bed2d 100644 --- a/test/src/integer/arithmetic/isubn.js +++ b/test/src/integer/arithmetic/isubn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '-5677' ) ; test( macro , '-1' , 5678 , '-5679' ) ; test( macro , '1' , -5678 , '5679' ) ; test( macro , '-1' , -5678 , '5677' ) ; +test( macro , '1' , 94906265 , '-94906264' ) ; +test( macro , '-1' , 94906265 , '-94906266' ) ; +test( macro , '1' , -94906265 , '94906266' ) ; +test( macro , '-1' , -94906265 , '94906264' ) ; +test( macro , '1' , 94906266 , '-94906265' ) ; +test( macro , '-1' , 94906266 , '-94906267' ) ; +test( macro , '1' , -94906266 , '94906267' ) ; +test( macro , '-1' , -94906266 , '94906265' ) ; test( macro , '1' , 1073741824 , '-1073741823' ) ; test( macro , '-1' , 1073741824 , '-1073741825' ) ; test( macro , '1' , -1073741824 , '1073741825' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '-5675' ) ; test( macro , '-3' , 5678 , '-5681' ) ; test( macro , '3' , -5678 , '5681' ) ; test( macro , '-3' , -5678 , '5675' ) ; +test( macro , '3' , 94906265 , '-94906262' ) ; +test( macro , '-3' , 94906265 , '-94906268' ) ; +test( macro , '3' , -94906265 , '94906268' ) ; +test( macro , '-3' , -94906265 , '94906262' ) ; +test( macro , '3' , 94906266 , '-94906263' ) ; +test( macro , '-3' , 94906266 , '-94906269' ) ; +test( macro , '3' , -94906266 , '94906269' ) ; +test( macro , '-3' , -94906266 , '94906263' ) ; test( macro , '3' , 1073741824 , '-1073741821' ) ; test( macro , '-3' , 1073741824 , '-1073741827' ) ; test( macro , '3' , -1073741824 , '1073741827' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '-5671' ) ; test( macro , '-7' , 5678 , '-5685' ) ; test( macro , '7' , -5678 , '5685' ) ; test( macro , '-7' , -5678 , '5671' ) ; +test( macro , '7' , 94906265 , '-94906258' ) ; +test( macro , '-7' , 94906265 , '-94906272' ) ; +test( macro , '7' , -94906265 , '94906272' ) ; +test( macro , '-7' , -94906265 , '94906258' ) ; +test( macro , '7' , 94906266 , '-94906259' ) ; +test( macro , '-7' , 94906266 , '-94906273' ) ; +test( macro , '7' , -94906266 , '94906273' ) ; +test( macro , '-7' , -94906266 , '94906259' ) ; test( macro , '7' , 1073741824 , '-1073741817' ) ; test( macro , '-7' , 1073741824 , '-1073741831' ) ; test( macro , '7' , -1073741824 , '1073741831' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '-5669' ) ; test( macro , '-9' , 5678 , '-5687' ) ; test( macro , '9' , -5678 , '5687' ) ; test( macro , '-9' , -5678 , '5669' ) ; +test( macro , '9' , 94906265 , '-94906256' ) ; +test( macro , '-9' , 94906265 , '-94906274' ) ; +test( macro , '9' , -94906265 , '94906274' ) ; +test( macro , '-9' , -94906265 , '94906256' ) ; +test( macro , '9' , 94906266 , '-94906257' ) ; +test( macro , '-9' , 94906266 , '-94906275' ) ; +test( macro , '9' , -94906266 , '94906275' ) ; +test( macro , '-9' , -94906266 , '94906257' ) ; test( macro , '9' , 1073741824 , '-1073741815' ) ; test( macro , '-9' , 1073741824 , '-1073741833' ) ; test( macro , '9' , -1073741824 , '1073741833' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '-5667' ) ; test( macro , '-11' , 5678 , '-5689' ) ; test( macro , '11' , -5678 , '5689' ) ; test( macro , '-11' , -5678 , '5667' ) ; +test( macro , '11' , 94906265 , '-94906254' ) ; +test( macro , '-11' , 94906265 , '-94906276' ) ; +test( macro , '11' , -94906265 , '94906276' ) ; +test( macro , '-11' , -94906265 , '94906254' ) ; +test( macro , '11' , 94906266 , '-94906255' ) ; +test( macro , '-11' , 94906266 , '-94906277' ) ; +test( macro , '11' , -94906266 , '94906277' ) ; +test( macro , '-11' , -94906266 , '94906255' ) ; test( macro , '11' , 1073741824 , '-1073741813' ) ; test( macro , '-11' , 1073741824 , '-1073741835' ) ; test( macro , '11' , -1073741824 , '1073741835' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '-5661' ) ; test( macro , '-17' , 5678 , '-5695' ) ; test( macro , '17' , -5678 , '5695' ) ; test( macro , '-17' , -5678 , '5661' ) ; +test( macro , '17' , 94906265 , '-94906248' ) ; +test( macro , '-17' , 94906265 , '-94906282' ) ; +test( macro , '17' , -94906265 , '94906282' ) ; +test( macro , '-17' , -94906265 , '94906248' ) ; +test( macro , '17' , 94906266 , '-94906249' ) ; +test( macro , '-17' , 94906266 , '-94906283' ) ; +test( macro , '17' , -94906266 , '94906283' ) ; +test( macro , '-17' , -94906266 , '94906249' ) ; test( macro , '17' , 1073741824 , '-1073741807' ) ; test( macro , '-17' , 1073741824 , '-1073741841' ) ; test( macro , '17' , -1073741824 , '1073741841' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '-5656' ) ; test( macro , '-22' , 5678 , '-5700' ) ; test( macro , '22' , -5678 , '5700' ) ; test( macro , '-22' , -5678 , '5656' ) ; +test( macro , '22' , 94906265 , '-94906243' ) ; +test( macro , '-22' , 94906265 , '-94906287' ) ; +test( macro , '22' , -94906265 , '94906287' ) ; +test( macro , '-22' , -94906265 , '94906243' ) ; +test( macro , '22' , 94906266 , '-94906244' ) ; +test( macro , '-22' , 94906266 , '-94906288' ) ; +test( macro , '22' , -94906266 , '94906288' ) ; +test( macro , '-22' , -94906266 , '94906244' ) ; test( macro , '22' , 1073741824 , '-1073741802' ) ; test( macro , '-22' , 1073741824 , '-1073741846' ) ; test( macro , '22' , -1073741824 , '1073741846' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '-5654' ) ; test( macro , '-24' , 5678 , '-5702' ) ; test( macro , '24' , -5678 , '5702' ) ; test( macro , '-24' , -5678 , '5654' ) ; +test( macro , '24' , 94906265 , '-94906241' ) ; +test( macro , '-24' , 94906265 , '-94906289' ) ; +test( macro , '24' , -94906265 , '94906289' ) ; +test( macro , '-24' , -94906265 , '94906241' ) ; +test( macro , '24' , 94906266 , '-94906242' ) ; +test( macro , '-24' , 94906266 , '-94906290' ) ; +test( macro , '24' , -94906266 , '94906290' ) ; +test( macro , '-24' , -94906266 , '94906242' ) ; test( macro , '24' , 1073741824 , '-1073741800' ) ; test( macro , '-24' , 1073741824 , '-1073741848' ) ; test( macro , '24' , -1073741824 , '1073741848' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '-5651' ) ; test( macro , '-27' , 5678 , '-5705' ) ; test( macro , '27' , -5678 , '5705' ) ; test( macro , '-27' , -5678 , '5651' ) ; +test( macro , '27' , 94906265 , '-94906238' ) ; +test( macro , '-27' , 94906265 , '-94906292' ) ; +test( macro , '27' , -94906265 , '94906292' ) ; +test( macro , '-27' , -94906265 , '94906238' ) ; +test( macro , '27' , 94906266 , '-94906239' ) ; +test( macro , '-27' , 94906266 , '-94906293' ) ; +test( macro , '27' , -94906266 , '94906293' ) ; +test( macro , '-27' , -94906266 , '94906239' ) ; test( macro , '27' , 1073741824 , '-1073741797' ) ; test( macro , '-27' , 1073741824 , '-1073741851' ) ; test( macro , '27' , -1073741824 , '1073741851' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '-5649' ) ; test( macro , '-29' , 5678 , '-5707' ) ; test( macro , '29' , -5678 , '5707' ) ; test( macro , '-29' , -5678 , '5649' ) ; +test( macro , '29' , 94906265 , '-94906236' ) ; +test( macro , '-29' , 94906265 , '-94906294' ) ; +test( macro , '29' , -94906265 , '94906294' ) ; +test( macro , '-29' , -94906265 , '94906236' ) ; +test( macro , '29' , 94906266 , '-94906237' ) ; +test( macro , '-29' , 94906266 , '-94906295' ) ; +test( macro , '29' , -94906266 , '94906295' ) ; +test( macro , '-29' , -94906266 , '94906237' ) ; test( macro , '29' , 1073741824 , '-1073741795' ) ; test( macro , '-29' , 1073741824 , '-1073741853' ) ; test( macro , '29' , -1073741824 , '1073741853' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '-4444' ) ; test( macro , '-1234' , 5678 , '-6912' ) ; test( macro , '1234' , -5678 , '6912' ) ; test( macro , '-1234' , -5678 , '4444' ) ; +test( macro , '1234' , 94906265 , '-94905031' ) ; +test( macro , '-1234' , 94906265 , '-94907499' ) ; +test( macro , '1234' , -94906265 , '94907499' ) ; +test( macro , '-1234' , -94906265 , '94905031' ) ; +test( macro , '1234' , 94906266 , '-94905032' ) ; +test( macro , '-1234' , 94906266 , '-94907500' ) ; +test( macro , '1234' , -94906266 , '94907500' ) ; +test( macro , '-1234' , -94906266 , '94905032' ) ; test( macro , '1234' , 1073741824 , '-1073740590' ) ; test( macro , '-1234' , 1073741824 , '-1073743058' ) ; test( macro , '1234' , -1073741824 , '1073743058' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '0' ) ; test( macro , '-5678' , 5678 , '-11356' ) ; test( macro , '5678' , -5678 , '11356' ) ; test( macro , '-5678' , -5678 , '0' ) ; +test( macro , '5678' , 94906265 , '-94900587' ) ; +test( macro , '-5678' , 94906265 , '-94911943' ) ; +test( macro , '5678' , -94906265 , '94911943' ) ; +test( macro , '-5678' , -94906265 , '94900587' ) ; +test( macro , '5678' , 94906266 , '-94900588' ) ; +test( macro , '-5678' , 94906266 , '-94911944' ) ; +test( macro , '5678' , -94906266 , '94911944' ) ; +test( macro , '-5678' , -94906266 , '94900588' ) ; test( macro , '5678' , 1073741824 , '-1073736146' ) ; test( macro , '-5678' , 1073741824 , '-1073747502' ) ; test( macro , '5678' , -1073741824 , '1073747502' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '-51676101930053' ) ; test( macro , '-5678' , 51676101935731 , '-51676101941409' ) ; test( macro , '5678' , -51676101935731 , '51676101941409' ) ; test( macro , '-5678' , -51676101935731 , '51676101930053' ) ; +test( macro , '94906265' , 1 , '94906264' ) ; +test( macro , '-94906265' , 1 , '-94906266' ) ; +test( macro , '94906265' , -1 , '94906266' ) ; +test( macro , '-94906265' , -1 , '-94906264' ) ; +test( macro , '94906265' , 3 , '94906262' ) ; +test( macro , '-94906265' , 3 , '-94906268' ) ; +test( macro , '94906265' , -3 , '94906268' ) ; +test( macro , '-94906265' , -3 , '-94906262' ) ; +test( macro , '94906265' , 7 , '94906258' ) ; +test( macro , '-94906265' , 7 , '-94906272' ) ; +test( macro , '94906265' , -7 , '94906272' ) ; +test( macro , '-94906265' , -7 , '-94906258' ) ; +test( macro , '94906265' , 9 , '94906256' ) ; +test( macro , '-94906265' , 9 , '-94906274' ) ; +test( macro , '94906265' , -9 , '94906274' ) ; +test( macro , '-94906265' , -9 , '-94906256' ) ; +test( macro , '94906265' , 11 , '94906254' ) ; +test( macro , '-94906265' , 11 , '-94906276' ) ; +test( macro , '94906265' , -11 , '94906276' ) ; +test( macro , '-94906265' , -11 , '-94906254' ) ; +test( macro , '94906265' , 17 , '94906248' ) ; +test( macro , '-94906265' , 17 , '-94906282' ) ; +test( macro , '94906265' , -17 , '94906282' ) ; +test( macro , '-94906265' , -17 , '-94906248' ) ; +test( macro , '94906265' , 22 , '94906243' ) ; +test( macro , '-94906265' , 22 , '-94906287' ) ; +test( macro , '94906265' , -22 , '94906287' ) ; +test( macro , '-94906265' , -22 , '-94906243' ) ; +test( macro , '94906265' , 24 , '94906241' ) ; +test( macro , '-94906265' , 24 , '-94906289' ) ; +test( macro , '94906265' , -24 , '94906289' ) ; +test( macro , '-94906265' , -24 , '-94906241' ) ; +test( macro , '94906265' , 27 , '94906238' ) ; +test( macro , '-94906265' , 27 , '-94906292' ) ; +test( macro , '94906265' , -27 , '94906292' ) ; +test( macro , '-94906265' , -27 , '-94906238' ) ; +test( macro , '94906265' , 29 , '94906236' ) ; +test( macro , '-94906265' , 29 , '-94906294' ) ; +test( macro , '94906265' , -29 , '94906294' ) ; +test( macro , '-94906265' , -29 , '-94906236' ) ; +test( macro , '94906265' , 1234 , '94905031' ) ; +test( macro , '-94906265' , 1234 , '-94907499' ) ; +test( macro , '94906265' , -1234 , '94907499' ) ; +test( macro , '-94906265' , -1234 , '-94905031' ) ; +test( macro , '94906265' , 5678 , '94900587' ) ; +test( macro , '-94906265' , 5678 , '-94911943' ) ; +test( macro , '94906265' , -5678 , '94911943' ) ; +test( macro , '-94906265' , -5678 , '-94900587' ) ; +test( macro , '94906265' , 94906265 , '0' ) ; +test( macro , '-94906265' , 94906265 , '-189812530' ) ; +test( macro , '94906265' , -94906265 , '189812530' ) ; +test( macro , '-94906265' , -94906265 , '0' ) ; +test( macro , '94906265' , 94906266 , '-1' ) ; +test( macro , '-94906265' , 94906266 , '-189812531' ) ; +test( macro , '94906265' , -94906266 , '189812531' ) ; +test( macro , '-94906265' , -94906266 , '1' ) ; +test( macro , '94906265' , 1073741824 , '-978835559' ) ; +test( macro , '-94906265' , 1073741824 , '-1168648089' ) ; +test( macro , '94906265' , -1073741824 , '1168648089' ) ; +test( macro , '-94906265' , -1073741824 , '978835559' ) ; +test( macro , '94906265' , 51676101935731 , '-51676007029466' ) ; +test( macro , '-94906265' , 51676101935731 , '-51676196841996' ) ; +test( macro , '94906265' , -51676101935731 , '51676196841996' ) ; +test( macro , '-94906265' , -51676101935731 , '51676007029466' ) ; +test( macro , '94906266' , 1 , '94906265' ) ; +test( macro , '-94906266' , 1 , '-94906267' ) ; +test( macro , '94906266' , -1 , '94906267' ) ; +test( macro , '-94906266' , -1 , '-94906265' ) ; +test( macro , '94906266' , 3 , '94906263' ) ; +test( macro , '-94906266' , 3 , '-94906269' ) ; +test( macro , '94906266' , -3 , '94906269' ) ; +test( macro , '-94906266' , -3 , '-94906263' ) ; +test( macro , '94906266' , 7 , '94906259' ) ; +test( macro , '-94906266' , 7 , '-94906273' ) ; +test( macro , '94906266' , -7 , '94906273' ) ; +test( macro , '-94906266' , -7 , '-94906259' ) ; +test( macro , '94906266' , 9 , '94906257' ) ; +test( macro , '-94906266' , 9 , '-94906275' ) ; +test( macro , '94906266' , -9 , '94906275' ) ; +test( macro , '-94906266' , -9 , '-94906257' ) ; +test( macro , '94906266' , 11 , '94906255' ) ; +test( macro , '-94906266' , 11 , '-94906277' ) ; +test( macro , '94906266' , -11 , '94906277' ) ; +test( macro , '-94906266' , -11 , '-94906255' ) ; +test( macro , '94906266' , 17 , '94906249' ) ; +test( macro , '-94906266' , 17 , '-94906283' ) ; +test( macro , '94906266' , -17 , '94906283' ) ; +test( macro , '-94906266' , -17 , '-94906249' ) ; +test( macro , '94906266' , 22 , '94906244' ) ; +test( macro , '-94906266' , 22 , '-94906288' ) ; +test( macro , '94906266' , -22 , '94906288' ) ; +test( macro , '-94906266' , -22 , '-94906244' ) ; +test( macro , '94906266' , 24 , '94906242' ) ; +test( macro , '-94906266' , 24 , '-94906290' ) ; +test( macro , '94906266' , -24 , '94906290' ) ; +test( macro , '-94906266' , -24 , '-94906242' ) ; +test( macro , '94906266' , 27 , '94906239' ) ; +test( macro , '-94906266' , 27 , '-94906293' ) ; +test( macro , '94906266' , -27 , '94906293' ) ; +test( macro , '-94906266' , -27 , '-94906239' ) ; +test( macro , '94906266' , 29 , '94906237' ) ; +test( macro , '-94906266' , 29 , '-94906295' ) ; +test( macro , '94906266' , -29 , '94906295' ) ; +test( macro , '-94906266' , -29 , '-94906237' ) ; +test( macro , '94906266' , 1234 , '94905032' ) ; +test( macro , '-94906266' , 1234 , '-94907500' ) ; +test( macro , '94906266' , -1234 , '94907500' ) ; +test( macro , '-94906266' , -1234 , '-94905032' ) ; +test( macro , '94906266' , 5678 , '94900588' ) ; +test( macro , '-94906266' , 5678 , '-94911944' ) ; +test( macro , '94906266' , -5678 , '94911944' ) ; +test( macro , '-94906266' , -5678 , '-94900588' ) ; +test( macro , '94906266' , 94906265 , '1' ) ; +test( macro , '-94906266' , 94906265 , '-189812531' ) ; +test( macro , '94906266' , -94906265 , '189812531' ) ; +test( macro , '-94906266' , -94906265 , '-1' ) ; +test( macro , '94906266' , 94906266 , '0' ) ; +test( macro , '-94906266' , 94906266 , '-189812532' ) ; +test( macro , '94906266' , -94906266 , '189812532' ) ; +test( macro , '-94906266' , -94906266 , '0' ) ; +test( macro , '94906266' , 1073741824 , '-978835558' ) ; +test( macro , '-94906266' , 1073741824 , '-1168648090' ) ; +test( macro , '94906266' , -1073741824 , '1168648090' ) ; +test( macro , '-94906266' , -1073741824 , '978835558' ) ; +test( macro , '94906266' , 51676101935731 , '-51676007029465' ) ; +test( macro , '-94906266' , 51676101935731 , '-51676196841997' ) ; +test( macro , '94906266' , -51676101935731 , '51676196841997' ) ; +test( macro , '-94906266' , -51676101935731 , '51676007029465' ) ; test( macro , '1073741824' , 1 , '1073741823' ) ; test( macro , '-1073741824' , 1 , '-1073741825' ) ; test( macro , '1073741824' , -1 , '1073741825' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '1073736146' ) ; test( macro , '-1073741824' , 5678 , '-1073747502' ) ; test( macro , '1073741824' , -5678 , '1073747502' ) ; test( macro , '-1073741824' , -5678 , '-1073736146' ) ; +test( macro , '1073741824' , 94906265 , '978835559' ) ; +test( macro , '-1073741824' , 94906265 , '-1168648089' ) ; +test( macro , '1073741824' , -94906265 , '1168648089' ) ; +test( macro , '-1073741824' , -94906265 , '-978835559' ) ; +test( macro , '1073741824' , 94906266 , '978835558' ) ; +test( macro , '-1073741824' , 94906266 , '-1168648090' ) ; +test( macro , '1073741824' , -94906266 , '1168648090' ) ; +test( macro , '-1073741824' , -94906266 , '-978835558' ) ; test( macro , '1073741824' , 1073741824 , '0' ) ; test( macro , '-1073741824' , 1073741824 , '-2147483648' ) ; test( macro , '1073741824' , -1073741824 , '2147483648' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '51676101930053' ) ; test( macro , '-51676101935731' , 5678 , '-51676101941409' ) ; test( macro , '51676101935731' , -5678 , '51676101941409' ) ; test( macro , '-51676101935731' , -5678 , '-51676101930053' ) ; +test( macro , '51676101935731' , 94906265 , '51676007029466' ) ; +test( macro , '-51676101935731' , 94906265 , '-51676196841996' ) ; +test( macro , '51676101935731' , -94906265 , '51676196841996' ) ; +test( macro , '-51676101935731' , -94906265 , '-51676007029466' ) ; +test( macro , '51676101935731' , 94906266 , '51676007029465' ) ; +test( macro , '-51676101935731' , 94906266 , '-51676196841997' ) ; +test( macro , '51676101935731' , -94906266 , '51676196841997' ) ; +test( macro , '-51676101935731' , -94906266 , '-51676007029465' ) ; test( macro , '51676101935731' , 1073741824 , '51675028193907' ) ; test( macro , '-51676101935731' , 1073741824 , '-51677175677555' ) ; test( macro , '51676101935731' , -1073741824 , '51677175677555' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '717897987691852588764571' ) ; test( macro , '-717897987691852588770249' , 5678 , '-717897987691852588775927' ) ; test( macro , '717897987691852588770249' , -5678 , '717897987691852588775927' ) ; test( macro , '-717897987691852588770249' , -5678 , '-717897987691852588764571' ) ; +test( macro , '717897987691852588770249' , 94906265 , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , -94906265 , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , 94906266 , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-717897987691852683676515' ) ; +test( macro , '717897987691852588770249' , -94906266 , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '-717897987691852493863983' ) ; test( macro , '717897987691852588770249' , 1073741824 , '717897987691851515028425' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-717897987691853662512073' ) ; test( macro , '717897987691852588770249' , -1073741824 , '717897987691853662512073' ) ; diff --git a/test/src/integer/arithmetic/mod.js b/test/src/integer/arithmetic/mod.js index f5d5585..3e27666 100644 --- a/test/src/integer/arithmetic/mod.js +++ b/test/src/integer/arithmetic/mod.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '1' ) ; test( macro , '-1' , '5678' , '5677' ) ; test( macro , '1' , '-5678' , '-5677' ) ; test( macro , '-1' , '-5678' , '-1' ) ; +test( macro , '1' , '94906265' , '1' ) ; +test( macro , '-1' , '94906265' , '94906264' ) ; +test( macro , '1' , '-94906265' , '-94906264' ) ; +test( macro , '-1' , '-94906265' , '-1' ) ; +test( macro , '1' , '94906266' , '1' ) ; +test( macro , '-1' , '94906266' , '94906265' ) ; +test( macro , '1' , '-94906266' , '-94906265' ) ; +test( macro , '-1' , '-94906266' , '-1' ) ; test( macro , '1' , '1073741824' , '1' ) ; test( macro , '-1' , '1073741824' , '1073741823' ) ; test( macro , '1' , '-1073741824' , '-1073741823' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '3' ) ; test( macro , '-3' , '5678' , '5675' ) ; test( macro , '3' , '-5678' , '-5675' ) ; test( macro , '-3' , '-5678' , '-3' ) ; +test( macro , '3' , '94906265' , '3' ) ; +test( macro , '-3' , '94906265' , '94906262' ) ; +test( macro , '3' , '-94906265' , '-94906262' ) ; +test( macro , '-3' , '-94906265' , '-3' ) ; +test( macro , '3' , '94906266' , '3' ) ; +test( macro , '-3' , '94906266' , '94906263' ) ; +test( macro , '3' , '-94906266' , '-94906263' ) ; +test( macro , '-3' , '-94906266' , '-3' ) ; test( macro , '3' , '1073741824' , '3' ) ; test( macro , '-3' , '1073741824' , '1073741821' ) ; test( macro , '3' , '-1073741824' , '-1073741821' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '7' ) ; test( macro , '-7' , '5678' , '5671' ) ; test( macro , '7' , '-5678' , '-5671' ) ; test( macro , '-7' , '-5678' , '-7' ) ; +test( macro , '7' , '94906265' , '7' ) ; +test( macro , '-7' , '94906265' , '94906258' ) ; +test( macro , '7' , '-94906265' , '-94906258' ) ; +test( macro , '-7' , '-94906265' , '-7' ) ; +test( macro , '7' , '94906266' , '7' ) ; +test( macro , '-7' , '94906266' , '94906259' ) ; +test( macro , '7' , '-94906266' , '-94906259' ) ; +test( macro , '-7' , '-94906266' , '-7' ) ; test( macro , '7' , '1073741824' , '7' ) ; test( macro , '-7' , '1073741824' , '1073741817' ) ; test( macro , '7' , '-1073741824' , '-1073741817' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '9' ) ; test( macro , '-9' , '5678' , '5669' ) ; test( macro , '9' , '-5678' , '-5669' ) ; test( macro , '-9' , '-5678' , '-9' ) ; +test( macro , '9' , '94906265' , '9' ) ; +test( macro , '-9' , '94906265' , '94906256' ) ; +test( macro , '9' , '-94906265' , '-94906256' ) ; +test( macro , '-9' , '-94906265' , '-9' ) ; +test( macro , '9' , '94906266' , '9' ) ; +test( macro , '-9' , '94906266' , '94906257' ) ; +test( macro , '9' , '-94906266' , '-94906257' ) ; +test( macro , '-9' , '-94906266' , '-9' ) ; test( macro , '9' , '1073741824' , '9' ) ; test( macro , '-9' , '1073741824' , '1073741815' ) ; test( macro , '9' , '-1073741824' , '-1073741815' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '11' ) ; test( macro , '-11' , '5678' , '5667' ) ; test( macro , '11' , '-5678' , '-5667' ) ; test( macro , '-11' , '-5678' , '-11' ) ; +test( macro , '11' , '94906265' , '11' ) ; +test( macro , '-11' , '94906265' , '94906254' ) ; +test( macro , '11' , '-94906265' , '-94906254' ) ; +test( macro , '-11' , '-94906265' , '-11' ) ; +test( macro , '11' , '94906266' , '11' ) ; +test( macro , '-11' , '94906266' , '94906255' ) ; +test( macro , '11' , '-94906266' , '-94906255' ) ; +test( macro , '-11' , '-94906266' , '-11' ) ; test( macro , '11' , '1073741824' , '11' ) ; test( macro , '-11' , '1073741824' , '1073741813' ) ; test( macro , '11' , '-1073741824' , '-1073741813' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '17' ) ; test( macro , '-17' , '5678' , '5661' ) ; test( macro , '17' , '-5678' , '-5661' ) ; test( macro , '-17' , '-5678' , '-17' ) ; +test( macro , '17' , '94906265' , '17' ) ; +test( macro , '-17' , '94906265' , '94906248' ) ; +test( macro , '17' , '-94906265' , '-94906248' ) ; +test( macro , '-17' , '-94906265' , '-17' ) ; +test( macro , '17' , '94906266' , '17' ) ; +test( macro , '-17' , '94906266' , '94906249' ) ; +test( macro , '17' , '-94906266' , '-94906249' ) ; +test( macro , '-17' , '-94906266' , '-17' ) ; test( macro , '17' , '1073741824' , '17' ) ; test( macro , '-17' , '1073741824' , '1073741807' ) ; test( macro , '17' , '-1073741824' , '-1073741807' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '22' ) ; test( macro , '-22' , '5678' , '5656' ) ; test( macro , '22' , '-5678' , '-5656' ) ; test( macro , '-22' , '-5678' , '-22' ) ; +test( macro , '22' , '94906265' , '22' ) ; +test( macro , '-22' , '94906265' , '94906243' ) ; +test( macro , '22' , '-94906265' , '-94906243' ) ; +test( macro , '-22' , '-94906265' , '-22' ) ; +test( macro , '22' , '94906266' , '22' ) ; +test( macro , '-22' , '94906266' , '94906244' ) ; +test( macro , '22' , '-94906266' , '-94906244' ) ; +test( macro , '-22' , '-94906266' , '-22' ) ; test( macro , '22' , '1073741824' , '22' ) ; test( macro , '-22' , '1073741824' , '1073741802' ) ; test( macro , '22' , '-1073741824' , '-1073741802' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '24' ) ; test( macro , '-24' , '5678' , '5654' ) ; test( macro , '24' , '-5678' , '-5654' ) ; test( macro , '-24' , '-5678' , '-24' ) ; +test( macro , '24' , '94906265' , '24' ) ; +test( macro , '-24' , '94906265' , '94906241' ) ; +test( macro , '24' , '-94906265' , '-94906241' ) ; +test( macro , '-24' , '-94906265' , '-24' ) ; +test( macro , '24' , '94906266' , '24' ) ; +test( macro , '-24' , '94906266' , '94906242' ) ; +test( macro , '24' , '-94906266' , '-94906242' ) ; +test( macro , '-24' , '-94906266' , '-24' ) ; test( macro , '24' , '1073741824' , '24' ) ; test( macro , '-24' , '1073741824' , '1073741800' ) ; test( macro , '24' , '-1073741824' , '-1073741800' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '27' ) ; test( macro , '-27' , '5678' , '5651' ) ; test( macro , '27' , '-5678' , '-5651' ) ; test( macro , '-27' , '-5678' , '-27' ) ; +test( macro , '27' , '94906265' , '27' ) ; +test( macro , '-27' , '94906265' , '94906238' ) ; +test( macro , '27' , '-94906265' , '-94906238' ) ; +test( macro , '-27' , '-94906265' , '-27' ) ; +test( macro , '27' , '94906266' , '27' ) ; +test( macro , '-27' , '94906266' , '94906239' ) ; +test( macro , '27' , '-94906266' , '-94906239' ) ; +test( macro , '-27' , '-94906266' , '-27' ) ; test( macro , '27' , '1073741824' , '27' ) ; test( macro , '-27' , '1073741824' , '1073741797' ) ; test( macro , '27' , '-1073741824' , '-1073741797' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '29' ) ; test( macro , '-29' , '5678' , '5649' ) ; test( macro , '29' , '-5678' , '-5649' ) ; test( macro , '-29' , '-5678' , '-29' ) ; +test( macro , '29' , '94906265' , '29' ) ; +test( macro , '-29' , '94906265' , '94906236' ) ; +test( macro , '29' , '-94906265' , '-94906236' ) ; +test( macro , '-29' , '-94906265' , '-29' ) ; +test( macro , '29' , '94906266' , '29' ) ; +test( macro , '-29' , '94906266' , '94906237' ) ; +test( macro , '29' , '-94906266' , '-94906237' ) ; +test( macro , '-29' , '-94906266' , '-29' ) ; test( macro , '29' , '1073741824' , '29' ) ; test( macro , '-29' , '1073741824' , '1073741795' ) ; test( macro , '29' , '-1073741824' , '-1073741795' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '1234' ) ; test( macro , '-1234' , '5678' , '4444' ) ; test( macro , '1234' , '-5678' , '-4444' ) ; test( macro , '-1234' , '-5678' , '-1234' ) ; +test( macro , '1234' , '94906265' , '1234' ) ; +test( macro , '-1234' , '94906265' , '94905031' ) ; +test( macro , '1234' , '-94906265' , '-94905031' ) ; +test( macro , '-1234' , '-94906265' , '-1234' ) ; +test( macro , '1234' , '94906266' , '1234' ) ; +test( macro , '-1234' , '94906266' , '94905032' ) ; +test( macro , '1234' , '-94906266' , '-94905032' ) ; +test( macro , '-1234' , '-94906266' , '-1234' ) ; test( macro , '1234' , '1073741824' , '1234' ) ; test( macro , '-1234' , '1073741824' , '1073740590' ) ; test( macro , '1234' , '-1073741824' , '-1073740590' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '0' ) ; test( macro , '-5678' , '5678' , '0' ) ; test( macro , '5678' , '-5678' , '0' ) ; test( macro , '-5678' , '-5678' , '0' ) ; +test( macro , '5678' , '94906265' , '5678' ) ; +test( macro , '-5678' , '94906265' , '94900587' ) ; +test( macro , '5678' , '-94906265' , '-94900587' ) ; +test( macro , '-5678' , '-94906265' , '-5678' ) ; +test( macro , '5678' , '94906266' , '5678' ) ; +test( macro , '-5678' , '94906266' , '94900588' ) ; +test( macro , '5678' , '-94906266' , '-94900588' ) ; +test( macro , '-5678' , '-94906266' , '-5678' ) ; test( macro , '5678' , '1073741824' , '5678' ) ; test( macro , '-5678' , '1073741824' , '1073736146' ) ; test( macro , '5678' , '-1073741824' , '-1073736146' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '5678' ) ; test( macro , '-5678' , '717897987691852588770249' , '717897987691852588764571' ) ; test( macro , '5678' , '-717897987691852588770249' , '-717897987691852588764571' ) ; test( macro , '-5678' , '-717897987691852588770249' , '-5678' ) ; +test( macro , '94906265' , '1' , '0' ) ; +test( macro , '-94906265' , '1' , '0' ) ; +test( macro , '94906265' , '-1' , '0' ) ; +test( macro , '-94906265' , '-1' , '0' ) ; +test( macro , '94906265' , '3' , '2' ) ; +test( macro , '-94906265' , '3' , '1' ) ; +test( macro , '94906265' , '-3' , '-1' ) ; +test( macro , '-94906265' , '-3' , '-2' ) ; +test( macro , '94906265' , '7' , '6' ) ; +test( macro , '-94906265' , '7' , '1' ) ; +test( macro , '94906265' , '-7' , '-1' ) ; +test( macro , '-94906265' , '-7' , '-6' ) ; +test( macro , '94906265' , '9' , '5' ) ; +test( macro , '-94906265' , '9' , '4' ) ; +test( macro , '94906265' , '-9' , '-4' ) ; +test( macro , '-94906265' , '-9' , '-5' ) ; +test( macro , '94906265' , '11' , '3' ) ; +test( macro , '-94906265' , '11' , '8' ) ; +test( macro , '94906265' , '-11' , '-8' ) ; +test( macro , '-94906265' , '-11' , '-3' ) ; +test( macro , '94906265' , '17' , '8' ) ; +test( macro , '-94906265' , '17' , '9' ) ; +test( macro , '94906265' , '-17' , '-9' ) ; +test( macro , '-94906265' , '-17' , '-8' ) ; +test( macro , '94906265' , '22' , '3' ) ; +test( macro , '-94906265' , '22' , '19' ) ; +test( macro , '94906265' , '-22' , '-19' ) ; +test( macro , '-94906265' , '-22' , '-3' ) ; +test( macro , '94906265' , '24' , '17' ) ; +test( macro , '-94906265' , '24' , '7' ) ; +test( macro , '94906265' , '-24' , '-7' ) ; +test( macro , '-94906265' , '-24' , '-17' ) ; +test( macro , '94906265' , '27' , '23' ) ; +test( macro , '-94906265' , '27' , '4' ) ; +test( macro , '94906265' , '-27' , '-4' ) ; +test( macro , '-94906265' , '-27' , '-23' ) ; +test( macro , '94906265' , '29' , '24' ) ; +test( macro , '-94906265' , '29' , '5' ) ; +test( macro , '94906265' , '-29' , '-5' ) ; +test( macro , '-94906265' , '-29' , '-24' ) ; +test( macro , '94906265' , '1234' , '559' ) ; +test( macro , '-94906265' , '1234' , '675' ) ; +test( macro , '94906265' , '-1234' , '-675' ) ; +test( macro , '-94906265' , '-1234' , '-559' ) ; +test( macro , '94906265' , '5678' , '4173' ) ; +test( macro , '-94906265' , '5678' , '1505' ) ; +test( macro , '94906265' , '-5678' , '-1505' ) ; +test( macro , '-94906265' , '-5678' , '-4173' ) ; +test( macro , '94906265' , '94906265' , '0' ) ; +test( macro , '-94906265' , '94906265' , '0' ) ; +test( macro , '94906265' , '-94906265' , '0' ) ; +test( macro , '-94906265' , '-94906265' , '0' ) ; +test( macro , '94906265' , '94906266' , '94906265' ) ; +test( macro , '-94906265' , '94906266' , '1' ) ; +test( macro , '94906265' , '-94906266' , '-1' ) ; +test( macro , '-94906265' , '-94906266' , '-94906265' ) ; +test( macro , '94906265' , '1073741824' , '94906265' ) ; +test( macro , '-94906265' , '1073741824' , '978835559' ) ; +test( macro , '94906265' , '-1073741824' , '-978835559' ) ; +test( macro , '-94906265' , '-1073741824' , '-94906265' ) ; +test( macro , '94906265' , '51676101935731' , '94906265' ) ; +test( macro , '-94906265' , '51676101935731' , '51676007029466' ) ; +test( macro , '94906265' , '-51676101935731' , '-51676007029466' ) ; +test( macro , '-94906265' , '-51676101935731' , '-94906265' ) ; +test( macro , '94906265' , '717897987691852588770249' , '94906265' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '717897987691852493863984' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '-94906265' ) ; +test( macro , '94906266' , '1' , '0' ) ; +test( macro , '-94906266' , '1' , '0' ) ; +test( macro , '94906266' , '-1' , '0' ) ; +test( macro , '-94906266' , '-1' , '0' ) ; +test( macro , '94906266' , '3' , '0' ) ; +test( macro , '-94906266' , '3' , '0' ) ; +test( macro , '94906266' , '-3' , '0' ) ; +test( macro , '-94906266' , '-3' , '0' ) ; +test( macro , '94906266' , '7' , '0' ) ; +test( macro , '-94906266' , '7' , '0' ) ; +test( macro , '94906266' , '-7' , '0' ) ; +test( macro , '-94906266' , '-7' , '0' ) ; +test( macro , '94906266' , '9' , '6' ) ; +test( macro , '-94906266' , '9' , '3' ) ; +test( macro , '94906266' , '-9' , '-3' ) ; +test( macro , '-94906266' , '-9' , '-6' ) ; +test( macro , '94906266' , '11' , '4' ) ; +test( macro , '-94906266' , '11' , '7' ) ; +test( macro , '94906266' , '-11' , '-7' ) ; +test( macro , '-94906266' , '-11' , '-4' ) ; +test( macro , '94906266' , '17' , '9' ) ; +test( macro , '-94906266' , '17' , '8' ) ; +test( macro , '94906266' , '-17' , '-8' ) ; +test( macro , '-94906266' , '-17' , '-9' ) ; +test( macro , '94906266' , '22' , '4' ) ; +test( macro , '-94906266' , '22' , '18' ) ; +test( macro , '94906266' , '-22' , '-18' ) ; +test( macro , '-94906266' , '-22' , '-4' ) ; +test( macro , '94906266' , '24' , '18' ) ; +test( macro , '-94906266' , '24' , '6' ) ; +test( macro , '94906266' , '-24' , '-6' ) ; +test( macro , '-94906266' , '-24' , '-18' ) ; +test( macro , '94906266' , '27' , '24' ) ; +test( macro , '-94906266' , '27' , '3' ) ; +test( macro , '94906266' , '-27' , '-3' ) ; +test( macro , '-94906266' , '-27' , '-24' ) ; +test( macro , '94906266' , '29' , '25' ) ; +test( macro , '-94906266' , '29' , '4' ) ; +test( macro , '94906266' , '-29' , '-4' ) ; +test( macro , '-94906266' , '-29' , '-25' ) ; +test( macro , '94906266' , '1234' , '560' ) ; +test( macro , '-94906266' , '1234' , '674' ) ; +test( macro , '94906266' , '-1234' , '-674' ) ; +test( macro , '-94906266' , '-1234' , '-560' ) ; +test( macro , '94906266' , '5678' , '4174' ) ; +test( macro , '-94906266' , '5678' , '1504' ) ; +test( macro , '94906266' , '-5678' , '-1504' ) ; +test( macro , '-94906266' , '-5678' , '-4174' ) ; +test( macro , '94906266' , '94906265' , '1' ) ; +test( macro , '-94906266' , '94906265' , '94906264' ) ; +test( macro , '94906266' , '-94906265' , '-94906264' ) ; +test( macro , '-94906266' , '-94906265' , '-1' ) ; +test( macro , '94906266' , '94906266' , '0' ) ; +test( macro , '-94906266' , '94906266' , '0' ) ; +test( macro , '94906266' , '-94906266' , '0' ) ; +test( macro , '-94906266' , '-94906266' , '0' ) ; +test( macro , '94906266' , '1073741824' , '94906266' ) ; +test( macro , '-94906266' , '1073741824' , '978835558' ) ; +test( macro , '94906266' , '-1073741824' , '-978835558' ) ; +test( macro , '-94906266' , '-1073741824' , '-94906266' ) ; +test( macro , '94906266' , '51676101935731' , '94906266' ) ; +test( macro , '-94906266' , '51676101935731' , '51676007029465' ) ; +test( macro , '94906266' , '-51676101935731' , '-51676007029465' ) ; +test( macro , '-94906266' , '-51676101935731' , '-94906266' ) ; +test( macro , '94906266' , '717897987691852588770249' , '94906266' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '717897987691852493863983' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '-94906266' ) ; test( macro , '1073741824' , '1' , '0' ) ; test( macro , '-1073741824' , '1' , '0' ) ; test( macro , '1073741824' , '-1' , '0' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '3634' ) ; test( macro , '-1073741824' , '5678' , '2044' ) ; test( macro , '1073741824' , '-5678' , '-2044' ) ; test( macro , '-1073741824' , '-5678' , '-3634' ) ; +test( macro , '1073741824' , '94906265' , '29772909' ) ; +test( macro , '-1073741824' , '94906265' , '65133356' ) ; +test( macro , '1073741824' , '-94906265' , '-65133356' ) ; +test( macro , '-1073741824' , '-94906265' , '-29772909' ) ; +test( macro , '1073741824' , '94906266' , '29772898' ) ; +test( macro , '-1073741824' , '94906266' , '65133368' ) ; +test( macro , '1073741824' , '-94906266' , '-65133368' ) ; +test( macro , '-1073741824' , '-94906266' , '-29772898' ) ; test( macro , '1073741824' , '1073741824' , '0' ) ; test( macro , '-1073741824' , '1073741824' , '0' ) ; test( macro , '1073741824' , '-1073741824' , '0' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '3023' ) ; test( macro , '-51676101935731' , '5678' , '2655' ) ; test( macro , '51676101935731' , '-5678' , '-2655' ) ; test( macro , '-51676101935731' , '-5678' , '-3023' ) ; +test( macro , '51676101935731' , '94906265' , '20268291' ) ; +test( macro , '-51676101935731' , '94906265' , '74637974' ) ; +test( macro , '51676101935731' , '-94906265' , '-74637974' ) ; +test( macro , '-51676101935731' , '-94906265' , '-20268291' ) ; +test( macro , '51676101935731' , '94906266' , '19723795' ) ; +test( macro , '-51676101935731' , '94906266' , '75182471' ) ; +test( macro , '51676101935731' , '-94906266' , '-75182471' ) ; +test( macro , '-51676101935731' , '-94906266' , '-19723795' ) ; test( macro , '51676101935731' , '1073741824' , '129172083' ) ; test( macro , '-51676101935731' , '1073741824' , '944569741' ) ; test( macro , '51676101935731' , '-1073741824' , '-944569741' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '3477' ) ; test( macro , '-717897987691852588770249' , '5678' , '2201' ) ; test( macro , '717897987691852588770249' , '-5678' , '-2201' ) ; test( macro , '-717897987691852588770249' , '-5678' , '-3477' ) ; +test( macro , '717897987691852588770249' , '94906265' , '56517934' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '38388331' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-38388331' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '-56517934' ) ; +test( macro , '717897987691852588770249' , '94906266' , '81625371' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '13280895' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-13280895' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '-81625371' ) ; test( macro , '717897987691852588770249' , '1073741824' , '278782921' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '794958903' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/modn.js b/test/src/integer/arithmetic/modn.js index 5893679..f0d58ad 100644 --- a/test/src/integer/arithmetic/modn.js +++ b/test/src/integer/arithmetic/modn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '1' ) ; test( macro , '-1' , 5678 , '5677' ) ; test( macro , '1' , -5678 , '-5677' ) ; test( macro , '-1' , -5678 , '-1' ) ; +test( macro , '1' , 94906265 , '1' ) ; +test( macro , '-1' , 94906265 , '94906264' ) ; +test( macro , '1' , -94906265 , '-94906264' ) ; +test( macro , '-1' , -94906265 , '-1' ) ; +test( macro , '1' , 94906266 , '1' ) ; +test( macro , '-1' , 94906266 , '94906265' ) ; +test( macro , '1' , -94906266 , '-94906265' ) ; +test( macro , '-1' , -94906266 , '-1' ) ; test( macro , '1' , 1073741824 , '1' ) ; test( macro , '-1' , 1073741824 , '1073741823' ) ; test( macro , '1' , -1073741824 , '-1073741823' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '3' ) ; test( macro , '-3' , 5678 , '5675' ) ; test( macro , '3' , -5678 , '-5675' ) ; test( macro , '-3' , -5678 , '-3' ) ; +test( macro , '3' , 94906265 , '3' ) ; +test( macro , '-3' , 94906265 , '94906262' ) ; +test( macro , '3' , -94906265 , '-94906262' ) ; +test( macro , '-3' , -94906265 , '-3' ) ; +test( macro , '3' , 94906266 , '3' ) ; +test( macro , '-3' , 94906266 , '94906263' ) ; +test( macro , '3' , -94906266 , '-94906263' ) ; +test( macro , '-3' , -94906266 , '-3' ) ; test( macro , '3' , 1073741824 , '3' ) ; test( macro , '-3' , 1073741824 , '1073741821' ) ; test( macro , '3' , -1073741824 , '-1073741821' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '7' ) ; test( macro , '-7' , 5678 , '5671' ) ; test( macro , '7' , -5678 , '-5671' ) ; test( macro , '-7' , -5678 , '-7' ) ; +test( macro , '7' , 94906265 , '7' ) ; +test( macro , '-7' , 94906265 , '94906258' ) ; +test( macro , '7' , -94906265 , '-94906258' ) ; +test( macro , '-7' , -94906265 , '-7' ) ; +test( macro , '7' , 94906266 , '7' ) ; +test( macro , '-7' , 94906266 , '94906259' ) ; +test( macro , '7' , -94906266 , '-94906259' ) ; +test( macro , '-7' , -94906266 , '-7' ) ; test( macro , '7' , 1073741824 , '7' ) ; test( macro , '-7' , 1073741824 , '1073741817' ) ; test( macro , '7' , -1073741824 , '-1073741817' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '9' ) ; test( macro , '-9' , 5678 , '5669' ) ; test( macro , '9' , -5678 , '-5669' ) ; test( macro , '-9' , -5678 , '-9' ) ; +test( macro , '9' , 94906265 , '9' ) ; +test( macro , '-9' , 94906265 , '94906256' ) ; +test( macro , '9' , -94906265 , '-94906256' ) ; +test( macro , '-9' , -94906265 , '-9' ) ; +test( macro , '9' , 94906266 , '9' ) ; +test( macro , '-9' , 94906266 , '94906257' ) ; +test( macro , '9' , -94906266 , '-94906257' ) ; +test( macro , '-9' , -94906266 , '-9' ) ; test( macro , '9' , 1073741824 , '9' ) ; test( macro , '-9' , 1073741824 , '1073741815' ) ; test( macro , '9' , -1073741824 , '-1073741815' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '11' ) ; test( macro , '-11' , 5678 , '5667' ) ; test( macro , '11' , -5678 , '-5667' ) ; test( macro , '-11' , -5678 , '-11' ) ; +test( macro , '11' , 94906265 , '11' ) ; +test( macro , '-11' , 94906265 , '94906254' ) ; +test( macro , '11' , -94906265 , '-94906254' ) ; +test( macro , '-11' , -94906265 , '-11' ) ; +test( macro , '11' , 94906266 , '11' ) ; +test( macro , '-11' , 94906266 , '94906255' ) ; +test( macro , '11' , -94906266 , '-94906255' ) ; +test( macro , '-11' , -94906266 , '-11' ) ; test( macro , '11' , 1073741824 , '11' ) ; test( macro , '-11' , 1073741824 , '1073741813' ) ; test( macro , '11' , -1073741824 , '-1073741813' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '17' ) ; test( macro , '-17' , 5678 , '5661' ) ; test( macro , '17' , -5678 , '-5661' ) ; test( macro , '-17' , -5678 , '-17' ) ; +test( macro , '17' , 94906265 , '17' ) ; +test( macro , '-17' , 94906265 , '94906248' ) ; +test( macro , '17' , -94906265 , '-94906248' ) ; +test( macro , '-17' , -94906265 , '-17' ) ; +test( macro , '17' , 94906266 , '17' ) ; +test( macro , '-17' , 94906266 , '94906249' ) ; +test( macro , '17' , -94906266 , '-94906249' ) ; +test( macro , '-17' , -94906266 , '-17' ) ; test( macro , '17' , 1073741824 , '17' ) ; test( macro , '-17' , 1073741824 , '1073741807' ) ; test( macro , '17' , -1073741824 , '-1073741807' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '22' ) ; test( macro , '-22' , 5678 , '5656' ) ; test( macro , '22' , -5678 , '-5656' ) ; test( macro , '-22' , -5678 , '-22' ) ; +test( macro , '22' , 94906265 , '22' ) ; +test( macro , '-22' , 94906265 , '94906243' ) ; +test( macro , '22' , -94906265 , '-94906243' ) ; +test( macro , '-22' , -94906265 , '-22' ) ; +test( macro , '22' , 94906266 , '22' ) ; +test( macro , '-22' , 94906266 , '94906244' ) ; +test( macro , '22' , -94906266 , '-94906244' ) ; +test( macro , '-22' , -94906266 , '-22' ) ; test( macro , '22' , 1073741824 , '22' ) ; test( macro , '-22' , 1073741824 , '1073741802' ) ; test( macro , '22' , -1073741824 , '-1073741802' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '24' ) ; test( macro , '-24' , 5678 , '5654' ) ; test( macro , '24' , -5678 , '-5654' ) ; test( macro , '-24' , -5678 , '-24' ) ; +test( macro , '24' , 94906265 , '24' ) ; +test( macro , '-24' , 94906265 , '94906241' ) ; +test( macro , '24' , -94906265 , '-94906241' ) ; +test( macro , '-24' , -94906265 , '-24' ) ; +test( macro , '24' , 94906266 , '24' ) ; +test( macro , '-24' , 94906266 , '94906242' ) ; +test( macro , '24' , -94906266 , '-94906242' ) ; +test( macro , '-24' , -94906266 , '-24' ) ; test( macro , '24' , 1073741824 , '24' ) ; test( macro , '-24' , 1073741824 , '1073741800' ) ; test( macro , '24' , -1073741824 , '-1073741800' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '27' ) ; test( macro , '-27' , 5678 , '5651' ) ; test( macro , '27' , -5678 , '-5651' ) ; test( macro , '-27' , -5678 , '-27' ) ; +test( macro , '27' , 94906265 , '27' ) ; +test( macro , '-27' , 94906265 , '94906238' ) ; +test( macro , '27' , -94906265 , '-94906238' ) ; +test( macro , '-27' , -94906265 , '-27' ) ; +test( macro , '27' , 94906266 , '27' ) ; +test( macro , '-27' , 94906266 , '94906239' ) ; +test( macro , '27' , -94906266 , '-94906239' ) ; +test( macro , '-27' , -94906266 , '-27' ) ; test( macro , '27' , 1073741824 , '27' ) ; test( macro , '-27' , 1073741824 , '1073741797' ) ; test( macro , '27' , -1073741824 , '-1073741797' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '29' ) ; test( macro , '-29' , 5678 , '5649' ) ; test( macro , '29' , -5678 , '-5649' ) ; test( macro , '-29' , -5678 , '-29' ) ; +test( macro , '29' , 94906265 , '29' ) ; +test( macro , '-29' , 94906265 , '94906236' ) ; +test( macro , '29' , -94906265 , '-94906236' ) ; +test( macro , '-29' , -94906265 , '-29' ) ; +test( macro , '29' , 94906266 , '29' ) ; +test( macro , '-29' , 94906266 , '94906237' ) ; +test( macro , '29' , -94906266 , '-94906237' ) ; +test( macro , '-29' , -94906266 , '-29' ) ; test( macro , '29' , 1073741824 , '29' ) ; test( macro , '-29' , 1073741824 , '1073741795' ) ; test( macro , '29' , -1073741824 , '-1073741795' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '1234' ) ; test( macro , '-1234' , 5678 , '4444' ) ; test( macro , '1234' , -5678 , '-4444' ) ; test( macro , '-1234' , -5678 , '-1234' ) ; +test( macro , '1234' , 94906265 , '1234' ) ; +test( macro , '-1234' , 94906265 , '94905031' ) ; +test( macro , '1234' , -94906265 , '-94905031' ) ; +test( macro , '-1234' , -94906265 , '-1234' ) ; +test( macro , '1234' , 94906266 , '1234' ) ; +test( macro , '-1234' , 94906266 , '94905032' ) ; +test( macro , '1234' , -94906266 , '-94905032' ) ; +test( macro , '-1234' , -94906266 , '-1234' ) ; test( macro , '1234' , 1073741824 , '1234' ) ; test( macro , '-1234' , 1073741824 , '1073740590' ) ; test( macro , '1234' , -1073741824 , '-1073740590' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '0' ) ; test( macro , '-5678' , 5678 , '0' ) ; test( macro , '5678' , -5678 , '0' ) ; test( macro , '-5678' , -5678 , '0' ) ; +test( macro , '5678' , 94906265 , '5678' ) ; +test( macro , '-5678' , 94906265 , '94900587' ) ; +test( macro , '5678' , -94906265 , '-94900587' ) ; +test( macro , '-5678' , -94906265 , '-5678' ) ; +test( macro , '5678' , 94906266 , '5678' ) ; +test( macro , '-5678' , 94906266 , '94900588' ) ; +test( macro , '5678' , -94906266 , '-94900588' ) ; +test( macro , '-5678' , -94906266 , '-5678' ) ; test( macro , '5678' , 1073741824 , '5678' ) ; test( macro , '-5678' , 1073741824 , '1073736146' ) ; test( macro , '5678' , -1073741824 , '-1073736146' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '5678' ) ; test( macro , '-5678' , 51676101935731 , '51676101930053' ) ; test( macro , '5678' , -51676101935731 , '-51676101930053' ) ; test( macro , '-5678' , -51676101935731 , '-5678' ) ; +test( macro , '94906265' , 1 , '0' ) ; +test( macro , '-94906265' , 1 , '0' ) ; +test( macro , '94906265' , -1 , '0' ) ; +test( macro , '-94906265' , -1 , '0' ) ; +test( macro , '94906265' , 3 , '2' ) ; +test( macro , '-94906265' , 3 , '1' ) ; +test( macro , '94906265' , -3 , '-1' ) ; +test( macro , '-94906265' , -3 , '-2' ) ; +test( macro , '94906265' , 7 , '6' ) ; +test( macro , '-94906265' , 7 , '1' ) ; +test( macro , '94906265' , -7 , '-1' ) ; +test( macro , '-94906265' , -7 , '-6' ) ; +test( macro , '94906265' , 9 , '5' ) ; +test( macro , '-94906265' , 9 , '4' ) ; +test( macro , '94906265' , -9 , '-4' ) ; +test( macro , '-94906265' , -9 , '-5' ) ; +test( macro , '94906265' , 11 , '3' ) ; +test( macro , '-94906265' , 11 , '8' ) ; +test( macro , '94906265' , -11 , '-8' ) ; +test( macro , '-94906265' , -11 , '-3' ) ; +test( macro , '94906265' , 17 , '8' ) ; +test( macro , '-94906265' , 17 , '9' ) ; +test( macro , '94906265' , -17 , '-9' ) ; +test( macro , '-94906265' , -17 , '-8' ) ; +test( macro , '94906265' , 22 , '3' ) ; +test( macro , '-94906265' , 22 , '19' ) ; +test( macro , '94906265' , -22 , '-19' ) ; +test( macro , '-94906265' , -22 , '-3' ) ; +test( macro , '94906265' , 24 , '17' ) ; +test( macro , '-94906265' , 24 , '7' ) ; +test( macro , '94906265' , -24 , '-7' ) ; +test( macro , '-94906265' , -24 , '-17' ) ; +test( macro , '94906265' , 27 , '23' ) ; +test( macro , '-94906265' , 27 , '4' ) ; +test( macro , '94906265' , -27 , '-4' ) ; +test( macro , '-94906265' , -27 , '-23' ) ; +test( macro , '94906265' , 29 , '24' ) ; +test( macro , '-94906265' , 29 , '5' ) ; +test( macro , '94906265' , -29 , '-5' ) ; +test( macro , '-94906265' , -29 , '-24' ) ; +test( macro , '94906265' , 1234 , '559' ) ; +test( macro , '-94906265' , 1234 , '675' ) ; +test( macro , '94906265' , -1234 , '-675' ) ; +test( macro , '-94906265' , -1234 , '-559' ) ; +test( macro , '94906265' , 5678 , '4173' ) ; +test( macro , '-94906265' , 5678 , '1505' ) ; +test( macro , '94906265' , -5678 , '-1505' ) ; +test( macro , '-94906265' , -5678 , '-4173' ) ; +test( macro , '94906265' , 94906265 , '0' ) ; +test( macro , '-94906265' , 94906265 , '0' ) ; +test( macro , '94906265' , -94906265 , '0' ) ; +test( macro , '-94906265' , -94906265 , '0' ) ; +test( macro , '94906265' , 94906266 , '94906265' ) ; +test( macro , '-94906265' , 94906266 , '1' ) ; +test( macro , '94906265' , -94906266 , '-1' ) ; +test( macro , '-94906265' , -94906266 , '-94906265' ) ; +test( macro , '94906265' , 1073741824 , '94906265' ) ; +test( macro , '-94906265' , 1073741824 , '978835559' ) ; +test( macro , '94906265' , -1073741824 , '-978835559' ) ; +test( macro , '-94906265' , -1073741824 , '-94906265' ) ; +test( macro , '94906265' , 51676101935731 , '94906265' ) ; +test( macro , '-94906265' , 51676101935731 , '51676007029466' ) ; +test( macro , '94906265' , -51676101935731 , '-51676007029466' ) ; +test( macro , '-94906265' , -51676101935731 , '-94906265' ) ; +test( macro , '94906266' , 1 , '0' ) ; +test( macro , '-94906266' , 1 , '0' ) ; +test( macro , '94906266' , -1 , '0' ) ; +test( macro , '-94906266' , -1 , '0' ) ; +test( macro , '94906266' , 3 , '0' ) ; +test( macro , '-94906266' , 3 , '0' ) ; +test( macro , '94906266' , -3 , '0' ) ; +test( macro , '-94906266' , -3 , '0' ) ; +test( macro , '94906266' , 7 , '0' ) ; +test( macro , '-94906266' , 7 , '0' ) ; +test( macro , '94906266' , -7 , '0' ) ; +test( macro , '-94906266' , -7 , '0' ) ; +test( macro , '94906266' , 9 , '6' ) ; +test( macro , '-94906266' , 9 , '3' ) ; +test( macro , '94906266' , -9 , '-3' ) ; +test( macro , '-94906266' , -9 , '-6' ) ; +test( macro , '94906266' , 11 , '4' ) ; +test( macro , '-94906266' , 11 , '7' ) ; +test( macro , '94906266' , -11 , '-7' ) ; +test( macro , '-94906266' , -11 , '-4' ) ; +test( macro , '94906266' , 17 , '9' ) ; +test( macro , '-94906266' , 17 , '8' ) ; +test( macro , '94906266' , -17 , '-8' ) ; +test( macro , '-94906266' , -17 , '-9' ) ; +test( macro , '94906266' , 22 , '4' ) ; +test( macro , '-94906266' , 22 , '18' ) ; +test( macro , '94906266' , -22 , '-18' ) ; +test( macro , '-94906266' , -22 , '-4' ) ; +test( macro , '94906266' , 24 , '18' ) ; +test( macro , '-94906266' , 24 , '6' ) ; +test( macro , '94906266' , -24 , '-6' ) ; +test( macro , '-94906266' , -24 , '-18' ) ; +test( macro , '94906266' , 27 , '24' ) ; +test( macro , '-94906266' , 27 , '3' ) ; +test( macro , '94906266' , -27 , '-3' ) ; +test( macro , '-94906266' , -27 , '-24' ) ; +test( macro , '94906266' , 29 , '25' ) ; +test( macro , '-94906266' , 29 , '4' ) ; +test( macro , '94906266' , -29 , '-4' ) ; +test( macro , '-94906266' , -29 , '-25' ) ; +test( macro , '94906266' , 1234 , '560' ) ; +test( macro , '-94906266' , 1234 , '674' ) ; +test( macro , '94906266' , -1234 , '-674' ) ; +test( macro , '-94906266' , -1234 , '-560' ) ; +test( macro , '94906266' , 5678 , '4174' ) ; +test( macro , '-94906266' , 5678 , '1504' ) ; +test( macro , '94906266' , -5678 , '-1504' ) ; +test( macro , '-94906266' , -5678 , '-4174' ) ; +test( macro , '94906266' , 94906265 , '1' ) ; +test( macro , '-94906266' , 94906265 , '94906264' ) ; +test( macro , '94906266' , -94906265 , '-94906264' ) ; +test( macro , '-94906266' , -94906265 , '-1' ) ; +test( macro , '94906266' , 94906266 , '0' ) ; +test( macro , '-94906266' , 94906266 , '0' ) ; +test( macro , '94906266' , -94906266 , '0' ) ; +test( macro , '-94906266' , -94906266 , '0' ) ; +test( macro , '94906266' , 1073741824 , '94906266' ) ; +test( macro , '-94906266' , 1073741824 , '978835558' ) ; +test( macro , '94906266' , -1073741824 , '-978835558' ) ; +test( macro , '-94906266' , -1073741824 , '-94906266' ) ; +test( macro , '94906266' , 51676101935731 , '94906266' ) ; +test( macro , '-94906266' , 51676101935731 , '51676007029465' ) ; +test( macro , '94906266' , -51676101935731 , '-51676007029465' ) ; +test( macro , '-94906266' , -51676101935731 , '-94906266' ) ; test( macro , '1073741824' , 1 , '0' ) ; test( macro , '-1073741824' , 1 , '0' ) ; test( macro , '1073741824' , -1 , '0' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '3634' ) ; test( macro , '-1073741824' , 5678 , '2044' ) ; test( macro , '1073741824' , -5678 , '-2044' ) ; test( macro , '-1073741824' , -5678 , '-3634' ) ; +test( macro , '1073741824' , 94906265 , '29772909' ) ; +test( macro , '-1073741824' , 94906265 , '65133356' ) ; +test( macro , '1073741824' , -94906265 , '-65133356' ) ; +test( macro , '-1073741824' , -94906265 , '-29772909' ) ; +test( macro , '1073741824' , 94906266 , '29772898' ) ; +test( macro , '-1073741824' , 94906266 , '65133368' ) ; +test( macro , '1073741824' , -94906266 , '-65133368' ) ; +test( macro , '-1073741824' , -94906266 , '-29772898' ) ; test( macro , '1073741824' , 1073741824 , '0' ) ; test( macro , '-1073741824' , 1073741824 , '0' ) ; test( macro , '1073741824' , -1073741824 , '0' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '3023' ) ; test( macro , '-51676101935731' , 5678 , '2655' ) ; test( macro , '51676101935731' , -5678 , '-2655' ) ; test( macro , '-51676101935731' , -5678 , '-3023' ) ; +test( macro , '51676101935731' , 94906265 , '20268291' ) ; +test( macro , '-51676101935731' , 94906265 , '74637974' ) ; +test( macro , '51676101935731' , -94906265 , '-74637974' ) ; +test( macro , '-51676101935731' , -94906265 , '-20268291' ) ; +test( macro , '51676101935731' , 94906266 , '19723795' ) ; +test( macro , '-51676101935731' , 94906266 , '75182471' ) ; +test( macro , '51676101935731' , -94906266 , '-75182471' ) ; +test( macro , '-51676101935731' , -94906266 , '-19723795' ) ; test( macro , '51676101935731' , 1073741824 , '129172083' ) ; test( macro , '-51676101935731' , 1073741824 , '944569741' ) ; test( macro , '51676101935731' , -1073741824 , '-944569741' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '3477' ) ; test( macro , '-717897987691852588770249' , 5678 , '2201' ) ; test( macro , '717897987691852588770249' , -5678 , '-2201' ) ; test( macro , '-717897987691852588770249' , -5678 , '-3477' ) ; +test( macro , '717897987691852588770249' , 94906265 , '56517934' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '38388331' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-38388331' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '-56517934' ) ; +test( macro , '717897987691852588770249' , 94906266 , '81625371' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '13280895' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-13280895' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '-81625371' ) ; test( macro , '717897987691852588770249' , 1073741824 , '278782921' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '794958903' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-794958903' ) ; diff --git a/test/src/integer/arithmetic/mul.js b/test/src/integer/arithmetic/mul.js index 09bd454..5f2cf48 100644 --- a/test/src/integer/arithmetic/mul.js +++ b/test/src/integer/arithmetic/mul.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '5678' ) ; test( macro , '-1' , '5678' , '-5678' ) ; test( macro , '1' , '-5678' , '-5678' ) ; test( macro , '-1' , '-5678' , '5678' ) ; +test( macro , '1' , '94906265' , '94906265' ) ; +test( macro , '-1' , '94906265' , '-94906265' ) ; +test( macro , '1' , '-94906265' , '-94906265' ) ; +test( macro , '-1' , '-94906265' , '94906265' ) ; +test( macro , '1' , '94906266' , '94906266' ) ; +test( macro , '-1' , '94906266' , '-94906266' ) ; +test( macro , '1' , '-94906266' , '-94906266' ) ; +test( macro , '-1' , '-94906266' , '94906266' ) ; test( macro , '1' , '1073741824' , '1073741824' ) ; test( macro , '-1' , '1073741824' , '-1073741824' ) ; test( macro , '1' , '-1073741824' , '-1073741824' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '17034' ) ; test( macro , '-3' , '5678' , '-17034' ) ; test( macro , '3' , '-5678' , '-17034' ) ; test( macro , '-3' , '-5678' , '17034' ) ; +test( macro , '3' , '94906265' , '284718795' ) ; +test( macro , '-3' , '94906265' , '-284718795' ) ; +test( macro , '3' , '-94906265' , '-284718795' ) ; +test( macro , '-3' , '-94906265' , '284718795' ) ; +test( macro , '3' , '94906266' , '284718798' ) ; +test( macro , '-3' , '94906266' , '-284718798' ) ; +test( macro , '3' , '-94906266' , '-284718798' ) ; +test( macro , '-3' , '-94906266' , '284718798' ) ; test( macro , '3' , '1073741824' , '3221225472' ) ; test( macro , '-3' , '1073741824' , '-3221225472' ) ; test( macro , '3' , '-1073741824' , '-3221225472' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '39746' ) ; test( macro , '-7' , '5678' , '-39746' ) ; test( macro , '7' , '-5678' , '-39746' ) ; test( macro , '-7' , '-5678' , '39746' ) ; +test( macro , '7' , '94906265' , '664343855' ) ; +test( macro , '-7' , '94906265' , '-664343855' ) ; +test( macro , '7' , '-94906265' , '-664343855' ) ; +test( macro , '-7' , '-94906265' , '664343855' ) ; +test( macro , '7' , '94906266' , '664343862' ) ; +test( macro , '-7' , '94906266' , '-664343862' ) ; +test( macro , '7' , '-94906266' , '-664343862' ) ; +test( macro , '-7' , '-94906266' , '664343862' ) ; test( macro , '7' , '1073741824' , '7516192768' ) ; test( macro , '-7' , '1073741824' , '-7516192768' ) ; test( macro , '7' , '-1073741824' , '-7516192768' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '51102' ) ; test( macro , '-9' , '5678' , '-51102' ) ; test( macro , '9' , '-5678' , '-51102' ) ; test( macro , '-9' , '-5678' , '51102' ) ; +test( macro , '9' , '94906265' , '854156385' ) ; +test( macro , '-9' , '94906265' , '-854156385' ) ; +test( macro , '9' , '-94906265' , '-854156385' ) ; +test( macro , '-9' , '-94906265' , '854156385' ) ; +test( macro , '9' , '94906266' , '854156394' ) ; +test( macro , '-9' , '94906266' , '-854156394' ) ; +test( macro , '9' , '-94906266' , '-854156394' ) ; +test( macro , '-9' , '-94906266' , '854156394' ) ; test( macro , '9' , '1073741824' , '9663676416' ) ; test( macro , '-9' , '1073741824' , '-9663676416' ) ; test( macro , '9' , '-1073741824' , '-9663676416' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '62458' ) ; test( macro , '-11' , '5678' , '-62458' ) ; test( macro , '11' , '-5678' , '-62458' ) ; test( macro , '-11' , '-5678' , '62458' ) ; +test( macro , '11' , '94906265' , '1043968915' ) ; +test( macro , '-11' , '94906265' , '-1043968915' ) ; +test( macro , '11' , '-94906265' , '-1043968915' ) ; +test( macro , '-11' , '-94906265' , '1043968915' ) ; +test( macro , '11' , '94906266' , '1043968926' ) ; +test( macro , '-11' , '94906266' , '-1043968926' ) ; +test( macro , '11' , '-94906266' , '-1043968926' ) ; +test( macro , '-11' , '-94906266' , '1043968926' ) ; test( macro , '11' , '1073741824' , '11811160064' ) ; test( macro , '-11' , '1073741824' , '-11811160064' ) ; test( macro , '11' , '-1073741824' , '-11811160064' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '96526' ) ; test( macro , '-17' , '5678' , '-96526' ) ; test( macro , '17' , '-5678' , '-96526' ) ; test( macro , '-17' , '-5678' , '96526' ) ; +test( macro , '17' , '94906265' , '1613406505' ) ; +test( macro , '-17' , '94906265' , '-1613406505' ) ; +test( macro , '17' , '-94906265' , '-1613406505' ) ; +test( macro , '-17' , '-94906265' , '1613406505' ) ; +test( macro , '17' , '94906266' , '1613406522' ) ; +test( macro , '-17' , '94906266' , '-1613406522' ) ; +test( macro , '17' , '-94906266' , '-1613406522' ) ; +test( macro , '-17' , '-94906266' , '1613406522' ) ; test( macro , '17' , '1073741824' , '18253611008' ) ; test( macro , '-17' , '1073741824' , '-18253611008' ) ; test( macro , '17' , '-1073741824' , '-18253611008' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '124916' ) ; test( macro , '-22' , '5678' , '-124916' ) ; test( macro , '22' , '-5678' , '-124916' ) ; test( macro , '-22' , '-5678' , '124916' ) ; +test( macro , '22' , '94906265' , '2087937830' ) ; +test( macro , '-22' , '94906265' , '-2087937830' ) ; +test( macro , '22' , '-94906265' , '-2087937830' ) ; +test( macro , '-22' , '-94906265' , '2087937830' ) ; +test( macro , '22' , '94906266' , '2087937852' ) ; +test( macro , '-22' , '94906266' , '-2087937852' ) ; +test( macro , '22' , '-94906266' , '-2087937852' ) ; +test( macro , '-22' , '-94906266' , '2087937852' ) ; test( macro , '22' , '1073741824' , '23622320128' ) ; test( macro , '-22' , '1073741824' , '-23622320128' ) ; test( macro , '22' , '-1073741824' , '-23622320128' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '136272' ) ; test( macro , '-24' , '5678' , '-136272' ) ; test( macro , '24' , '-5678' , '-136272' ) ; test( macro , '-24' , '-5678' , '136272' ) ; +test( macro , '24' , '94906265' , '2277750360' ) ; +test( macro , '-24' , '94906265' , '-2277750360' ) ; +test( macro , '24' , '-94906265' , '-2277750360' ) ; +test( macro , '-24' , '-94906265' , '2277750360' ) ; +test( macro , '24' , '94906266' , '2277750384' ) ; +test( macro , '-24' , '94906266' , '-2277750384' ) ; +test( macro , '24' , '-94906266' , '-2277750384' ) ; +test( macro , '-24' , '-94906266' , '2277750384' ) ; test( macro , '24' , '1073741824' , '25769803776' ) ; test( macro , '-24' , '1073741824' , '-25769803776' ) ; test( macro , '24' , '-1073741824' , '-25769803776' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '153306' ) ; test( macro , '-27' , '5678' , '-153306' ) ; test( macro , '27' , '-5678' , '-153306' ) ; test( macro , '-27' , '-5678' , '153306' ) ; +test( macro , '27' , '94906265' , '2562469155' ) ; +test( macro , '-27' , '94906265' , '-2562469155' ) ; +test( macro , '27' , '-94906265' , '-2562469155' ) ; +test( macro , '-27' , '-94906265' , '2562469155' ) ; +test( macro , '27' , '94906266' , '2562469182' ) ; +test( macro , '-27' , '94906266' , '-2562469182' ) ; +test( macro , '27' , '-94906266' , '-2562469182' ) ; +test( macro , '-27' , '-94906266' , '2562469182' ) ; test( macro , '27' , '1073741824' , '28991029248' ) ; test( macro , '-27' , '1073741824' , '-28991029248' ) ; test( macro , '27' , '-1073741824' , '-28991029248' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '164662' ) ; test( macro , '-29' , '5678' , '-164662' ) ; test( macro , '29' , '-5678' , '-164662' ) ; test( macro , '-29' , '-5678' , '164662' ) ; +test( macro , '29' , '94906265' , '2752281685' ) ; +test( macro , '-29' , '94906265' , '-2752281685' ) ; +test( macro , '29' , '-94906265' , '-2752281685' ) ; +test( macro , '-29' , '-94906265' , '2752281685' ) ; +test( macro , '29' , '94906266' , '2752281714' ) ; +test( macro , '-29' , '94906266' , '-2752281714' ) ; +test( macro , '29' , '-94906266' , '-2752281714' ) ; +test( macro , '-29' , '-94906266' , '2752281714' ) ; test( macro , '29' , '1073741824' , '31138512896' ) ; test( macro , '-29' , '1073741824' , '-31138512896' ) ; test( macro , '29' , '-1073741824' , '-31138512896' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '7006652' ) ; test( macro , '-1234' , '5678' , '-7006652' ) ; test( macro , '1234' , '-5678' , '-7006652' ) ; test( macro , '-1234' , '-5678' , '7006652' ) ; +test( macro , '1234' , '94906265' , '117114331010' ) ; +test( macro , '-1234' , '94906265' , '-117114331010' ) ; +test( macro , '1234' , '-94906265' , '-117114331010' ) ; +test( macro , '-1234' , '-94906265' , '117114331010' ) ; +test( macro , '1234' , '94906266' , '117114332244' ) ; +test( macro , '-1234' , '94906266' , '-117114332244' ) ; +test( macro , '1234' , '-94906266' , '-117114332244' ) ; +test( macro , '-1234' , '-94906266' , '117114332244' ) ; test( macro , '1234' , '1073741824' , '1324997410816' ) ; test( macro , '-1234' , '1073741824' , '-1324997410816' ) ; test( macro , '1234' , '-1073741824' , '-1324997410816' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '32239684' ) ; test( macro , '-5678' , '5678' , '-32239684' ) ; test( macro , '5678' , '-5678' , '-32239684' ) ; test( macro , '-5678' , '-5678' , '32239684' ) ; +test( macro , '5678' , '94906265' , '538877772670' ) ; +test( macro , '-5678' , '94906265' , '-538877772670' ) ; +test( macro , '5678' , '-94906265' , '-538877772670' ) ; +test( macro , '-5678' , '-94906265' , '538877772670' ) ; +test( macro , '5678' , '94906266' , '538877778348' ) ; +test( macro , '-5678' , '94906266' , '-538877778348' ) ; +test( macro , '5678' , '-94906266' , '-538877778348' ) ; +test( macro , '-5678' , '-94906266' , '538877778348' ) ; test( macro , '5678' , '1073741824' , '6096706076672' ) ; test( macro , '-5678' , '1073741824' , '-6096706076672' ) ; test( macro , '5678' , '-1073741824' , '-6096706076672' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '407622477411433899903747382 test( macro , '-5678' , '717897987691852588770249' , '-4076224774114338999037473822' ) ; test( macro , '5678' , '-717897987691852588770249' , '-4076224774114338999037473822' ) ; test( macro , '-5678' , '-717897987691852588770249' , '4076224774114338999037473822' ) ; +test( macro , '94906265' , '1' , '94906265' ) ; +test( macro , '-94906265' , '1' , '-94906265' ) ; +test( macro , '94906265' , '-1' , '-94906265' ) ; +test( macro , '-94906265' , '-1' , '94906265' ) ; +test( macro , '94906265' , '3' , '284718795' ) ; +test( macro , '-94906265' , '3' , '-284718795' ) ; +test( macro , '94906265' , '-3' , '-284718795' ) ; +test( macro , '-94906265' , '-3' , '284718795' ) ; +test( macro , '94906265' , '7' , '664343855' ) ; +test( macro , '-94906265' , '7' , '-664343855' ) ; +test( macro , '94906265' , '-7' , '-664343855' ) ; +test( macro , '-94906265' , '-7' , '664343855' ) ; +test( macro , '94906265' , '9' , '854156385' ) ; +test( macro , '-94906265' , '9' , '-854156385' ) ; +test( macro , '94906265' , '-9' , '-854156385' ) ; +test( macro , '-94906265' , '-9' , '854156385' ) ; +test( macro , '94906265' , '11' , '1043968915' ) ; +test( macro , '-94906265' , '11' , '-1043968915' ) ; +test( macro , '94906265' , '-11' , '-1043968915' ) ; +test( macro , '-94906265' , '-11' , '1043968915' ) ; +test( macro , '94906265' , '17' , '1613406505' ) ; +test( macro , '-94906265' , '17' , '-1613406505' ) ; +test( macro , '94906265' , '-17' , '-1613406505' ) ; +test( macro , '-94906265' , '-17' , '1613406505' ) ; +test( macro , '94906265' , '22' , '2087937830' ) ; +test( macro , '-94906265' , '22' , '-2087937830' ) ; +test( macro , '94906265' , '-22' , '-2087937830' ) ; +test( macro , '-94906265' , '-22' , '2087937830' ) ; +test( macro , '94906265' , '24' , '2277750360' ) ; +test( macro , '-94906265' , '24' , '-2277750360' ) ; +test( macro , '94906265' , '-24' , '-2277750360' ) ; +test( macro , '-94906265' , '-24' , '2277750360' ) ; +test( macro , '94906265' , '27' , '2562469155' ) ; +test( macro , '-94906265' , '27' , '-2562469155' ) ; +test( macro , '94906265' , '-27' , '-2562469155' ) ; +test( macro , '-94906265' , '-27' , '2562469155' ) ; +test( macro , '94906265' , '29' , '2752281685' ) ; +test( macro , '-94906265' , '29' , '-2752281685' ) ; +test( macro , '94906265' , '-29' , '-2752281685' ) ; +test( macro , '-94906265' , '-29' , '2752281685' ) ; +test( macro , '94906265' , '1234' , '117114331010' ) ; +test( macro , '-94906265' , '1234' , '-117114331010' ) ; +test( macro , '94906265' , '-1234' , '-117114331010' ) ; +test( macro , '-94906265' , '-1234' , '117114331010' ) ; +test( macro , '94906265' , '5678' , '538877772670' ) ; +test( macro , '-94906265' , '5678' , '-538877772670' ) ; +test( macro , '94906265' , '-5678' , '-538877772670' ) ; +test( macro , '-94906265' , '-5678' , '538877772670' ) ; +test( macro , '94906265' , '94906265' , '9007199136250225' ) ; +test( macro , '-94906265' , '94906265' , '-9007199136250225' ) ; +test( macro , '94906265' , '-94906265' , '-9007199136250225' ) ; +test( macro , '-94906265' , '-94906265' , '9007199136250225' ) ; +test( macro , '94906265' , '94906266' , '9007199231156490' ) ; +test( macro , '-94906265' , '94906266' , '-9007199231156490' ) ; +test( macro , '94906265' , '-94906266' , '-9007199231156490' ) ; +test( macro , '-94906265' , '-94906266' , '9007199231156490' ) ; +test( macro , '94906265' , '1073741824' , '101904826090127360' ) ; +test( macro , '-94906265' , '1073741824' , '-101904826090127360' ) ; +test( macro , '94906265' , '-1073741824' , '-101904826090127360' ) ; +test( macro , '-94906265' , '-1073741824' , '101904826090127360' ) ; +test( macro , '94906265' , '51676101935731' , '4904385824479499254715' ) ; +test( macro , '-94906265' , '51676101935731' , '-4904385824479499254715' ) ; +test( macro , '94906265' , '-51676101935731' , '-4904385824479499254715' ) ; +test( macro , '-94906265' , '-51676101935731' , '4904385824479499254715' ) ; +test( macro , '94906265' , '717897987691852588770249' , '68133016662849700130765275709985' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-68133016662849700130765275709985' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '-68133016662849700130765275709985' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '68133016662849700130765275709985' ) ; +test( macro , '94906266' , '1' , '94906266' ) ; +test( macro , '-94906266' , '1' , '-94906266' ) ; +test( macro , '94906266' , '-1' , '-94906266' ) ; +test( macro , '-94906266' , '-1' , '94906266' ) ; +test( macro , '94906266' , '3' , '284718798' ) ; +test( macro , '-94906266' , '3' , '-284718798' ) ; +test( macro , '94906266' , '-3' , '-284718798' ) ; +test( macro , '-94906266' , '-3' , '284718798' ) ; +test( macro , '94906266' , '7' , '664343862' ) ; +test( macro , '-94906266' , '7' , '-664343862' ) ; +test( macro , '94906266' , '-7' , '-664343862' ) ; +test( macro , '-94906266' , '-7' , '664343862' ) ; +test( macro , '94906266' , '9' , '854156394' ) ; +test( macro , '-94906266' , '9' , '-854156394' ) ; +test( macro , '94906266' , '-9' , '-854156394' ) ; +test( macro , '-94906266' , '-9' , '854156394' ) ; +test( macro , '94906266' , '11' , '1043968926' ) ; +test( macro , '-94906266' , '11' , '-1043968926' ) ; +test( macro , '94906266' , '-11' , '-1043968926' ) ; +test( macro , '-94906266' , '-11' , '1043968926' ) ; +test( macro , '94906266' , '17' , '1613406522' ) ; +test( macro , '-94906266' , '17' , '-1613406522' ) ; +test( macro , '94906266' , '-17' , '-1613406522' ) ; +test( macro , '-94906266' , '-17' , '1613406522' ) ; +test( macro , '94906266' , '22' , '2087937852' ) ; +test( macro , '-94906266' , '22' , '-2087937852' ) ; +test( macro , '94906266' , '-22' , '-2087937852' ) ; +test( macro , '-94906266' , '-22' , '2087937852' ) ; +test( macro , '94906266' , '24' , '2277750384' ) ; +test( macro , '-94906266' , '24' , '-2277750384' ) ; +test( macro , '94906266' , '-24' , '-2277750384' ) ; +test( macro , '-94906266' , '-24' , '2277750384' ) ; +test( macro , '94906266' , '27' , '2562469182' ) ; +test( macro , '-94906266' , '27' , '-2562469182' ) ; +test( macro , '94906266' , '-27' , '-2562469182' ) ; +test( macro , '-94906266' , '-27' , '2562469182' ) ; +test( macro , '94906266' , '29' , '2752281714' ) ; +test( macro , '-94906266' , '29' , '-2752281714' ) ; +test( macro , '94906266' , '-29' , '-2752281714' ) ; +test( macro , '-94906266' , '-29' , '2752281714' ) ; +test( macro , '94906266' , '1234' , '117114332244' ) ; +test( macro , '-94906266' , '1234' , '-117114332244' ) ; +test( macro , '94906266' , '-1234' , '-117114332244' ) ; +test( macro , '-94906266' , '-1234' , '117114332244' ) ; +test( macro , '94906266' , '5678' , '538877778348' ) ; +test( macro , '-94906266' , '5678' , '-538877778348' ) ; +test( macro , '94906266' , '-5678' , '-538877778348' ) ; +test( macro , '-94906266' , '-5678' , '538877778348' ) ; +test( macro , '94906266' , '94906265' , '9007199231156490' ) ; +test( macro , '-94906266' , '94906265' , '-9007199231156490' ) ; +test( macro , '94906266' , '-94906265' , '-9007199231156490' ) ; +test( macro , '-94906266' , '-94906265' , '9007199231156490' ) ; +test( macro , '94906266' , '94906266' , '9007199326062756' ) ; +test( macro , '-94906266' , '94906266' , '-9007199326062756' ) ; +test( macro , '94906266' , '-94906266' , '-9007199326062756' ) ; +test( macro , '-94906266' , '-94906266' , '9007199326062756' ) ; +test( macro , '94906266' , '1073741824' , '101904827163869184' ) ; +test( macro , '-94906266' , '1073741824' , '-101904827163869184' ) ; +test( macro , '94906266' , '-1073741824' , '-101904827163869184' ) ; +test( macro , '-94906266' , '-1073741824' , '101904827163869184' ) ; +test( macro , '94906266' , '51676101935731' , '4904385876155601190446' ) ; +test( macro , '-94906266' , '51676101935731' , '-4904385876155601190446' ) ; +test( macro , '94906266' , '-51676101935731' , '-4904385876155601190446' ) ; +test( macro , '-94906266' , '-51676101935731' , '4904385876155601190446' ) ; +test( macro , '94906266' , '717897987691852588770249' , '68133017380747687822617864480234' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-68133017380747687822617864480234' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '-68133017380747687822617864480234' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '68133017380747687822617864480234' ) ; test( macro , '1073741824' , '1' , '1073741824' ) ; test( macro , '-1073741824' , '1' , '-1073741824' ) ; test( macro , '1073741824' , '-1' , '-1073741824' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '6096706076672' ) ; test( macro , '-1073741824' , '5678' , '-6096706076672' ) ; test( macro , '1073741824' , '-5678' , '-6096706076672' ) ; test( macro , '-1073741824' , '-5678' , '6096706076672' ) ; +test( macro , '1073741824' , '94906265' , '101904826090127360' ) ; +test( macro , '-1073741824' , '94906265' , '-101904826090127360' ) ; +test( macro , '1073741824' , '-94906265' , '-101904826090127360' ) ; +test( macro , '-1073741824' , '-94906265' , '101904826090127360' ) ; +test( macro , '1073741824' , '94906266' , '101904827163869184' ) ; +test( macro , '-1073741824' , '94906266' , '-101904827163869184' ) ; +test( macro , '1073741824' , '-94906266' , '-101904827163869184' ) ; +test( macro , '-1073741824' , '-94906266' , '101904827163869184' ) ; test( macro , '1073741824' , '1073741824' , '1152921504606846976' ) ; test( macro , '-1073741824' , '1073741824' , '-1152921504606846976' ) ; test( macro , '1073741824' , '-1073741824' , '-1152921504606846976' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '293416906791080618' ) ; test( macro , '-51676101935731' , '5678' , '-293416906791080618' ) ; test( macro , '51676101935731' , '-5678' , '-293416906791080618' ) ; test( macro , '-51676101935731' , '-5678' , '293416906791080618' ) ; +test( macro , '51676101935731' , '94906265' , '4904385824479499254715' ) ; +test( macro , '-51676101935731' , '94906265' , '-4904385824479499254715' ) ; +test( macro , '51676101935731' , '-94906265' , '-4904385824479499254715' ) ; +test( macro , '-51676101935731' , '-94906265' , '4904385824479499254715' ) ; +test( macro , '51676101935731' , '94906266' , '4904385876155601190446' ) ; +test( macro , '-51676101935731' , '94906266' , '-4904385876155601190446' ) ; +test( macro , '51676101935731' , '-94906266' , '-4904385876155601190446' ) ; +test( macro , '-51676101935731' , '-94906266' , '4904385876155601190446' ) ; test( macro , '51676101935731' , '1073741824' , '55486791949681734713344' ) ; test( macro , '-51676101935731' , '1073741824' , '-55486791949681734713344' ) ; test( macro , '51676101935731' , '-1073741824' , '-55486791949681734713344' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '407622477411433899903747382 test( macro , '-717897987691852588770249' , '5678' , '-4076224774114338999037473822' ) ; test( macro , '717897987691852588770249' , '-5678' , '-4076224774114338999037473822' ) ; test( macro , '-717897987691852588770249' , '-5678' , '4076224774114338999037473822' ) ; +test( macro , '717897987691852588770249' , '94906265' , '68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '-68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , '94906266' , '68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-68133017380747687822617864480234' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '-68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '68133017380747687822617864480234' ) ; test( macro , '717897987691852588770249' , '1073741824' , '770837094750179348605289078194176' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-770837094750179348605289078194176' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '-770837094750179348605289078194176' ) ; diff --git a/test/src/integer/arithmetic/muln.js b/test/src/integer/arithmetic/muln.js index cbeb57b..3808eba 100644 --- a/test/src/integer/arithmetic/muln.js +++ b/test/src/integer/arithmetic/muln.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '5678' ) ; test( macro , '-1' , 5678 , '-5678' ) ; test( macro , '1' , -5678 , '-5678' ) ; test( macro , '-1' , -5678 , '5678' ) ; +test( macro , '1' , 94906265 , '94906265' ) ; +test( macro , '-1' , 94906265 , '-94906265' ) ; +test( macro , '1' , -94906265 , '-94906265' ) ; +test( macro , '-1' , -94906265 , '94906265' ) ; +test( macro , '1' , 94906266 , '94906266' ) ; +test( macro , '-1' , 94906266 , '-94906266' ) ; +test( macro , '1' , -94906266 , '-94906266' ) ; +test( macro , '-1' , -94906266 , '94906266' ) ; test( macro , '1' , 1073741824 , '1073741824' ) ; test( macro , '-1' , 1073741824 , '-1073741824' ) ; test( macro , '1' , -1073741824 , '-1073741824' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '17034' ) ; test( macro , '-3' , 5678 , '-17034' ) ; test( macro , '3' , -5678 , '-17034' ) ; test( macro , '-3' , -5678 , '17034' ) ; +test( macro , '3' , 94906265 , '284718795' ) ; +test( macro , '-3' , 94906265 , '-284718795' ) ; +test( macro , '3' , -94906265 , '-284718795' ) ; +test( macro , '-3' , -94906265 , '284718795' ) ; +test( macro , '3' , 94906266 , '284718798' ) ; +test( macro , '-3' , 94906266 , '-284718798' ) ; +test( macro , '3' , -94906266 , '-284718798' ) ; +test( macro , '-3' , -94906266 , '284718798' ) ; test( macro , '3' , 1073741824 , '3221225472' ) ; test( macro , '-3' , 1073741824 , '-3221225472' ) ; test( macro , '3' , -1073741824 , '-3221225472' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '39746' ) ; test( macro , '-7' , 5678 , '-39746' ) ; test( macro , '7' , -5678 , '-39746' ) ; test( macro , '-7' , -5678 , '39746' ) ; +test( macro , '7' , 94906265 , '664343855' ) ; +test( macro , '-7' , 94906265 , '-664343855' ) ; +test( macro , '7' , -94906265 , '-664343855' ) ; +test( macro , '-7' , -94906265 , '664343855' ) ; +test( macro , '7' , 94906266 , '664343862' ) ; +test( macro , '-7' , 94906266 , '-664343862' ) ; +test( macro , '7' , -94906266 , '-664343862' ) ; +test( macro , '-7' , -94906266 , '664343862' ) ; test( macro , '7' , 1073741824 , '7516192768' ) ; test( macro , '-7' , 1073741824 , '-7516192768' ) ; test( macro , '7' , -1073741824 , '-7516192768' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '51102' ) ; test( macro , '-9' , 5678 , '-51102' ) ; test( macro , '9' , -5678 , '-51102' ) ; test( macro , '-9' , -5678 , '51102' ) ; +test( macro , '9' , 94906265 , '854156385' ) ; +test( macro , '-9' , 94906265 , '-854156385' ) ; +test( macro , '9' , -94906265 , '-854156385' ) ; +test( macro , '-9' , -94906265 , '854156385' ) ; +test( macro , '9' , 94906266 , '854156394' ) ; +test( macro , '-9' , 94906266 , '-854156394' ) ; +test( macro , '9' , -94906266 , '-854156394' ) ; +test( macro , '-9' , -94906266 , '854156394' ) ; test( macro , '9' , 1073741824 , '9663676416' ) ; test( macro , '-9' , 1073741824 , '-9663676416' ) ; test( macro , '9' , -1073741824 , '-9663676416' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '62458' ) ; test( macro , '-11' , 5678 , '-62458' ) ; test( macro , '11' , -5678 , '-62458' ) ; test( macro , '-11' , -5678 , '62458' ) ; +test( macro , '11' , 94906265 , '1043968915' ) ; +test( macro , '-11' , 94906265 , '-1043968915' ) ; +test( macro , '11' , -94906265 , '-1043968915' ) ; +test( macro , '-11' , -94906265 , '1043968915' ) ; +test( macro , '11' , 94906266 , '1043968926' ) ; +test( macro , '-11' , 94906266 , '-1043968926' ) ; +test( macro , '11' , -94906266 , '-1043968926' ) ; +test( macro , '-11' , -94906266 , '1043968926' ) ; test( macro , '11' , 1073741824 , '11811160064' ) ; test( macro , '-11' , 1073741824 , '-11811160064' ) ; test( macro , '11' , -1073741824 , '-11811160064' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '96526' ) ; test( macro , '-17' , 5678 , '-96526' ) ; test( macro , '17' , -5678 , '-96526' ) ; test( macro , '-17' , -5678 , '96526' ) ; +test( macro , '17' , 94906265 , '1613406505' ) ; +test( macro , '-17' , 94906265 , '-1613406505' ) ; +test( macro , '17' , -94906265 , '-1613406505' ) ; +test( macro , '-17' , -94906265 , '1613406505' ) ; +test( macro , '17' , 94906266 , '1613406522' ) ; +test( macro , '-17' , 94906266 , '-1613406522' ) ; +test( macro , '17' , -94906266 , '-1613406522' ) ; +test( macro , '-17' , -94906266 , '1613406522' ) ; test( macro , '17' , 1073741824 , '18253611008' ) ; test( macro , '-17' , 1073741824 , '-18253611008' ) ; test( macro , '17' , -1073741824 , '-18253611008' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '124916' ) ; test( macro , '-22' , 5678 , '-124916' ) ; test( macro , '22' , -5678 , '-124916' ) ; test( macro , '-22' , -5678 , '124916' ) ; +test( macro , '22' , 94906265 , '2087937830' ) ; +test( macro , '-22' , 94906265 , '-2087937830' ) ; +test( macro , '22' , -94906265 , '-2087937830' ) ; +test( macro , '-22' , -94906265 , '2087937830' ) ; +test( macro , '22' , 94906266 , '2087937852' ) ; +test( macro , '-22' , 94906266 , '-2087937852' ) ; +test( macro , '22' , -94906266 , '-2087937852' ) ; +test( macro , '-22' , -94906266 , '2087937852' ) ; test( macro , '22' , 1073741824 , '23622320128' ) ; test( macro , '-22' , 1073741824 , '-23622320128' ) ; test( macro , '22' , -1073741824 , '-23622320128' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '136272' ) ; test( macro , '-24' , 5678 , '-136272' ) ; test( macro , '24' , -5678 , '-136272' ) ; test( macro , '-24' , -5678 , '136272' ) ; +test( macro , '24' , 94906265 , '2277750360' ) ; +test( macro , '-24' , 94906265 , '-2277750360' ) ; +test( macro , '24' , -94906265 , '-2277750360' ) ; +test( macro , '-24' , -94906265 , '2277750360' ) ; +test( macro , '24' , 94906266 , '2277750384' ) ; +test( macro , '-24' , 94906266 , '-2277750384' ) ; +test( macro , '24' , -94906266 , '-2277750384' ) ; +test( macro , '-24' , -94906266 , '2277750384' ) ; test( macro , '24' , 1073741824 , '25769803776' ) ; test( macro , '-24' , 1073741824 , '-25769803776' ) ; test( macro , '24' , -1073741824 , '-25769803776' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '153306' ) ; test( macro , '-27' , 5678 , '-153306' ) ; test( macro , '27' , -5678 , '-153306' ) ; test( macro , '-27' , -5678 , '153306' ) ; +test( macro , '27' , 94906265 , '2562469155' ) ; +test( macro , '-27' , 94906265 , '-2562469155' ) ; +test( macro , '27' , -94906265 , '-2562469155' ) ; +test( macro , '-27' , -94906265 , '2562469155' ) ; +test( macro , '27' , 94906266 , '2562469182' ) ; +test( macro , '-27' , 94906266 , '-2562469182' ) ; +test( macro , '27' , -94906266 , '-2562469182' ) ; +test( macro , '-27' , -94906266 , '2562469182' ) ; test( macro , '27' , 1073741824 , '28991029248' ) ; test( macro , '-27' , 1073741824 , '-28991029248' ) ; test( macro , '27' , -1073741824 , '-28991029248' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '164662' ) ; test( macro , '-29' , 5678 , '-164662' ) ; test( macro , '29' , -5678 , '-164662' ) ; test( macro , '-29' , -5678 , '164662' ) ; +test( macro , '29' , 94906265 , '2752281685' ) ; +test( macro , '-29' , 94906265 , '-2752281685' ) ; +test( macro , '29' , -94906265 , '-2752281685' ) ; +test( macro , '-29' , -94906265 , '2752281685' ) ; +test( macro , '29' , 94906266 , '2752281714' ) ; +test( macro , '-29' , 94906266 , '-2752281714' ) ; +test( macro , '29' , -94906266 , '-2752281714' ) ; +test( macro , '-29' , -94906266 , '2752281714' ) ; test( macro , '29' , 1073741824 , '31138512896' ) ; test( macro , '-29' , 1073741824 , '-31138512896' ) ; test( macro , '29' , -1073741824 , '-31138512896' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '7006652' ) ; test( macro , '-1234' , 5678 , '-7006652' ) ; test( macro , '1234' , -5678 , '-7006652' ) ; test( macro , '-1234' , -5678 , '7006652' ) ; +test( macro , '1234' , 94906265 , '117114331010' ) ; +test( macro , '-1234' , 94906265 , '-117114331010' ) ; +test( macro , '1234' , -94906265 , '-117114331010' ) ; +test( macro , '-1234' , -94906265 , '117114331010' ) ; +test( macro , '1234' , 94906266 , '117114332244' ) ; +test( macro , '-1234' , 94906266 , '-117114332244' ) ; +test( macro , '1234' , -94906266 , '-117114332244' ) ; +test( macro , '-1234' , -94906266 , '117114332244' ) ; test( macro , '1234' , 1073741824 , '1324997410816' ) ; test( macro , '-1234' , 1073741824 , '-1324997410816' ) ; test( macro , '1234' , -1073741824 , '-1324997410816' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '32239684' ) ; test( macro , '-5678' , 5678 , '-32239684' ) ; test( macro , '5678' , -5678 , '-32239684' ) ; test( macro , '-5678' , -5678 , '32239684' ) ; +test( macro , '5678' , 94906265 , '538877772670' ) ; +test( macro , '-5678' , 94906265 , '-538877772670' ) ; +test( macro , '5678' , -94906265 , '-538877772670' ) ; +test( macro , '-5678' , -94906265 , '538877772670' ) ; +test( macro , '5678' , 94906266 , '538877778348' ) ; +test( macro , '-5678' , 94906266 , '-538877778348' ) ; +test( macro , '5678' , -94906266 , '-538877778348' ) ; +test( macro , '-5678' , -94906266 , '538877778348' ) ; test( macro , '5678' , 1073741824 , '6096706076672' ) ; test( macro , '-5678' , 1073741824 , '-6096706076672' ) ; test( macro , '5678' , -1073741824 , '-6096706076672' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '293416906791080618' ) ; test( macro , '-5678' , 51676101935731 , '-293416906791080618' ) ; test( macro , '5678' , -51676101935731 , '-293416906791080618' ) ; test( macro , '-5678' , -51676101935731 , '293416906791080618' ) ; +test( macro , '94906265' , 1 , '94906265' ) ; +test( macro , '-94906265' , 1 , '-94906265' ) ; +test( macro , '94906265' , -1 , '-94906265' ) ; +test( macro , '-94906265' , -1 , '94906265' ) ; +test( macro , '94906265' , 3 , '284718795' ) ; +test( macro , '-94906265' , 3 , '-284718795' ) ; +test( macro , '94906265' , -3 , '-284718795' ) ; +test( macro , '-94906265' , -3 , '284718795' ) ; +test( macro , '94906265' , 7 , '664343855' ) ; +test( macro , '-94906265' , 7 , '-664343855' ) ; +test( macro , '94906265' , -7 , '-664343855' ) ; +test( macro , '-94906265' , -7 , '664343855' ) ; +test( macro , '94906265' , 9 , '854156385' ) ; +test( macro , '-94906265' , 9 , '-854156385' ) ; +test( macro , '94906265' , -9 , '-854156385' ) ; +test( macro , '-94906265' , -9 , '854156385' ) ; +test( macro , '94906265' , 11 , '1043968915' ) ; +test( macro , '-94906265' , 11 , '-1043968915' ) ; +test( macro , '94906265' , -11 , '-1043968915' ) ; +test( macro , '-94906265' , -11 , '1043968915' ) ; +test( macro , '94906265' , 17 , '1613406505' ) ; +test( macro , '-94906265' , 17 , '-1613406505' ) ; +test( macro , '94906265' , -17 , '-1613406505' ) ; +test( macro , '-94906265' , -17 , '1613406505' ) ; +test( macro , '94906265' , 22 , '2087937830' ) ; +test( macro , '-94906265' , 22 , '-2087937830' ) ; +test( macro , '94906265' , -22 , '-2087937830' ) ; +test( macro , '-94906265' , -22 , '2087937830' ) ; +test( macro , '94906265' , 24 , '2277750360' ) ; +test( macro , '-94906265' , 24 , '-2277750360' ) ; +test( macro , '94906265' , -24 , '-2277750360' ) ; +test( macro , '-94906265' , -24 , '2277750360' ) ; +test( macro , '94906265' , 27 , '2562469155' ) ; +test( macro , '-94906265' , 27 , '-2562469155' ) ; +test( macro , '94906265' , -27 , '-2562469155' ) ; +test( macro , '-94906265' , -27 , '2562469155' ) ; +test( macro , '94906265' , 29 , '2752281685' ) ; +test( macro , '-94906265' , 29 , '-2752281685' ) ; +test( macro , '94906265' , -29 , '-2752281685' ) ; +test( macro , '-94906265' , -29 , '2752281685' ) ; +test( macro , '94906265' , 1234 , '117114331010' ) ; +test( macro , '-94906265' , 1234 , '-117114331010' ) ; +test( macro , '94906265' , -1234 , '-117114331010' ) ; +test( macro , '-94906265' , -1234 , '117114331010' ) ; +test( macro , '94906265' , 5678 , '538877772670' ) ; +test( macro , '-94906265' , 5678 , '-538877772670' ) ; +test( macro , '94906265' , -5678 , '-538877772670' ) ; +test( macro , '-94906265' , -5678 , '538877772670' ) ; +test( macro , '94906265' , 94906265 , '9007199136250225' ) ; +test( macro , '-94906265' , 94906265 , '-9007199136250225' ) ; +test( macro , '94906265' , -94906265 , '-9007199136250225' ) ; +test( macro , '-94906265' , -94906265 , '9007199136250225' ) ; +test( macro , '94906265' , 94906266 , '9007199231156490' ) ; +test( macro , '-94906265' , 94906266 , '-9007199231156490' ) ; +test( macro , '94906265' , -94906266 , '-9007199231156490' ) ; +test( macro , '-94906265' , -94906266 , '9007199231156490' ) ; +test( macro , '94906265' , 1073741824 , '101904826090127360' ) ; +test( macro , '-94906265' , 1073741824 , '-101904826090127360' ) ; +test( macro , '94906265' , -1073741824 , '-101904826090127360' ) ; +test( macro , '-94906265' , -1073741824 , '101904826090127360' ) ; +test( macro , '94906265' , 51676101935731 , '4904385824479499254715' ) ; +test( macro , '-94906265' , 51676101935731 , '-4904385824479499254715' ) ; +test( macro , '94906265' , -51676101935731 , '-4904385824479499254715' ) ; +test( macro , '-94906265' , -51676101935731 , '4904385824479499254715' ) ; +test( macro , '94906266' , 1 , '94906266' ) ; +test( macro , '-94906266' , 1 , '-94906266' ) ; +test( macro , '94906266' , -1 , '-94906266' ) ; +test( macro , '-94906266' , -1 , '94906266' ) ; +test( macro , '94906266' , 3 , '284718798' ) ; +test( macro , '-94906266' , 3 , '-284718798' ) ; +test( macro , '94906266' , -3 , '-284718798' ) ; +test( macro , '-94906266' , -3 , '284718798' ) ; +test( macro , '94906266' , 7 , '664343862' ) ; +test( macro , '-94906266' , 7 , '-664343862' ) ; +test( macro , '94906266' , -7 , '-664343862' ) ; +test( macro , '-94906266' , -7 , '664343862' ) ; +test( macro , '94906266' , 9 , '854156394' ) ; +test( macro , '-94906266' , 9 , '-854156394' ) ; +test( macro , '94906266' , -9 , '-854156394' ) ; +test( macro , '-94906266' , -9 , '854156394' ) ; +test( macro , '94906266' , 11 , '1043968926' ) ; +test( macro , '-94906266' , 11 , '-1043968926' ) ; +test( macro , '94906266' , -11 , '-1043968926' ) ; +test( macro , '-94906266' , -11 , '1043968926' ) ; +test( macro , '94906266' , 17 , '1613406522' ) ; +test( macro , '-94906266' , 17 , '-1613406522' ) ; +test( macro , '94906266' , -17 , '-1613406522' ) ; +test( macro , '-94906266' , -17 , '1613406522' ) ; +test( macro , '94906266' , 22 , '2087937852' ) ; +test( macro , '-94906266' , 22 , '-2087937852' ) ; +test( macro , '94906266' , -22 , '-2087937852' ) ; +test( macro , '-94906266' , -22 , '2087937852' ) ; +test( macro , '94906266' , 24 , '2277750384' ) ; +test( macro , '-94906266' , 24 , '-2277750384' ) ; +test( macro , '94906266' , -24 , '-2277750384' ) ; +test( macro , '-94906266' , -24 , '2277750384' ) ; +test( macro , '94906266' , 27 , '2562469182' ) ; +test( macro , '-94906266' , 27 , '-2562469182' ) ; +test( macro , '94906266' , -27 , '-2562469182' ) ; +test( macro , '-94906266' , -27 , '2562469182' ) ; +test( macro , '94906266' , 29 , '2752281714' ) ; +test( macro , '-94906266' , 29 , '-2752281714' ) ; +test( macro , '94906266' , -29 , '-2752281714' ) ; +test( macro , '-94906266' , -29 , '2752281714' ) ; +test( macro , '94906266' , 1234 , '117114332244' ) ; +test( macro , '-94906266' , 1234 , '-117114332244' ) ; +test( macro , '94906266' , -1234 , '-117114332244' ) ; +test( macro , '-94906266' , -1234 , '117114332244' ) ; +test( macro , '94906266' , 5678 , '538877778348' ) ; +test( macro , '-94906266' , 5678 , '-538877778348' ) ; +test( macro , '94906266' , -5678 , '-538877778348' ) ; +test( macro , '-94906266' , -5678 , '538877778348' ) ; +test( macro , '94906266' , 94906265 , '9007199231156490' ) ; +test( macro , '-94906266' , 94906265 , '-9007199231156490' ) ; +test( macro , '94906266' , -94906265 , '-9007199231156490' ) ; +test( macro , '-94906266' , -94906265 , '9007199231156490' ) ; +test( macro , '94906266' , 94906266 , '9007199326062756' ) ; +test( macro , '-94906266' , 94906266 , '-9007199326062756' ) ; +test( macro , '94906266' , -94906266 , '-9007199326062756' ) ; +test( macro , '-94906266' , -94906266 , '9007199326062756' ) ; +test( macro , '94906266' , 1073741824 , '101904827163869184' ) ; +test( macro , '-94906266' , 1073741824 , '-101904827163869184' ) ; +test( macro , '94906266' , -1073741824 , '-101904827163869184' ) ; +test( macro , '-94906266' , -1073741824 , '101904827163869184' ) ; +test( macro , '94906266' , 51676101935731 , '4904385876155601190446' ) ; +test( macro , '-94906266' , 51676101935731 , '-4904385876155601190446' ) ; +test( macro , '94906266' , -51676101935731 , '-4904385876155601190446' ) ; +test( macro , '-94906266' , -51676101935731 , '4904385876155601190446' ) ; test( macro , '1073741824' , 1 , '1073741824' ) ; test( macro , '-1073741824' , 1 , '-1073741824' ) ; test( macro , '1073741824' , -1 , '-1073741824' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '6096706076672' ) ; test( macro , '-1073741824' , 5678 , '-6096706076672' ) ; test( macro , '1073741824' , -5678 , '-6096706076672' ) ; test( macro , '-1073741824' , -5678 , '6096706076672' ) ; +test( macro , '1073741824' , 94906265 , '101904826090127360' ) ; +test( macro , '-1073741824' , 94906265 , '-101904826090127360' ) ; +test( macro , '1073741824' , -94906265 , '-101904826090127360' ) ; +test( macro , '-1073741824' , -94906265 , '101904826090127360' ) ; +test( macro , '1073741824' , 94906266 , '101904827163869184' ) ; +test( macro , '-1073741824' , 94906266 , '-101904827163869184' ) ; +test( macro , '1073741824' , -94906266 , '-101904827163869184' ) ; +test( macro , '-1073741824' , -94906266 , '101904827163869184' ) ; test( macro , '1073741824' , 1073741824 , '1152921504606846976' ) ; test( macro , '-1073741824' , 1073741824 , '-1152921504606846976' ) ; test( macro , '1073741824' , -1073741824 , '-1152921504606846976' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '293416906791080618' ) ; test( macro , '-51676101935731' , 5678 , '-293416906791080618' ) ; test( macro , '51676101935731' , -5678 , '-293416906791080618' ) ; test( macro , '-51676101935731' , -5678 , '293416906791080618' ) ; +test( macro , '51676101935731' , 94906265 , '4904385824479499254715' ) ; +test( macro , '-51676101935731' , 94906265 , '-4904385824479499254715' ) ; +test( macro , '51676101935731' , -94906265 , '-4904385824479499254715' ) ; +test( macro , '-51676101935731' , -94906265 , '4904385824479499254715' ) ; +test( macro , '51676101935731' , 94906266 , '4904385876155601190446' ) ; +test( macro , '-51676101935731' , 94906266 , '-4904385876155601190446' ) ; +test( macro , '51676101935731' , -94906266 , '-4904385876155601190446' ) ; +test( macro , '-51676101935731' , -94906266 , '4904385876155601190446' ) ; test( macro , '51676101935731' , 1073741824 , '55486791949681734713344' ) ; test( macro , '-51676101935731' , 1073741824 , '-55486791949681734713344' ) ; test( macro , '51676101935731' , -1073741824 , '-55486791949681734713344' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '4076224774114338999037473822' test( macro , '-717897987691852588770249' , 5678 , '-4076224774114338999037473822' ) ; test( macro , '717897987691852588770249' , -5678 , '-4076224774114338999037473822' ) ; test( macro , '-717897987691852588770249' , -5678 , '4076224774114338999037473822' ) ; +test( macro , '717897987691852588770249' , 94906265 , '68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , -94906265 , '-68133016662849700130765275709985' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '68133016662849700130765275709985' ) ; +test( macro , '717897987691852588770249' , 94906266 , '68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-68133017380747687822617864480234' ) ; +test( macro , '717897987691852588770249' , -94906266 , '-68133017380747687822617864480234' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '68133017380747687822617864480234' ) ; test( macro , '717897987691852588770249' , 1073741824 , '770837094750179348605289078194176' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-770837094750179348605289078194176' ) ; test( macro , '717897987691852588770249' , -1073741824 , '-770837094750179348605289078194176' ) ; diff --git a/test/src/integer/arithmetic/sub.js b/test/src/integer/arithmetic/sub.js index fa227b2..6b7a6de 100644 --- a/test/src/integer/arithmetic/sub.js +++ b/test/src/integer/arithmetic/sub.js @@ -60,6 +60,14 @@ test( macro , '1' , '5678' , '-5677' ) ; test( macro , '-1' , '5678' , '-5679' ) ; test( macro , '1' , '-5678' , '5679' ) ; test( macro , '-1' , '-5678' , '5677' ) ; +test( macro , '1' , '94906265' , '-94906264' ) ; +test( macro , '-1' , '94906265' , '-94906266' ) ; +test( macro , '1' , '-94906265' , '94906266' ) ; +test( macro , '-1' , '-94906265' , '94906264' ) ; +test( macro , '1' , '94906266' , '-94906265' ) ; +test( macro , '-1' , '94906266' , '-94906267' ) ; +test( macro , '1' , '-94906266' , '94906267' ) ; +test( macro , '-1' , '-94906266' , '94906265' ) ; test( macro , '1' , '1073741824' , '-1073741823' ) ; test( macro , '-1' , '1073741824' , '-1073741825' ) ; test( macro , '1' , '-1073741824' , '1073741825' ) ; @@ -120,6 +128,14 @@ test( macro , '3' , '5678' , '-5675' ) ; test( macro , '-3' , '5678' , '-5681' ) ; test( macro , '3' , '-5678' , '5681' ) ; test( macro , '-3' , '-5678' , '5675' ) ; +test( macro , '3' , '94906265' , '-94906262' ) ; +test( macro , '-3' , '94906265' , '-94906268' ) ; +test( macro , '3' , '-94906265' , '94906268' ) ; +test( macro , '-3' , '-94906265' , '94906262' ) ; +test( macro , '3' , '94906266' , '-94906263' ) ; +test( macro , '-3' , '94906266' , '-94906269' ) ; +test( macro , '3' , '-94906266' , '94906269' ) ; +test( macro , '-3' , '-94906266' , '94906263' ) ; test( macro , '3' , '1073741824' , '-1073741821' ) ; test( macro , '-3' , '1073741824' , '-1073741827' ) ; test( macro , '3' , '-1073741824' , '1073741827' ) ; @@ -180,6 +196,14 @@ test( macro , '7' , '5678' , '-5671' ) ; test( macro , '-7' , '5678' , '-5685' ) ; test( macro , '7' , '-5678' , '5685' ) ; test( macro , '-7' , '-5678' , '5671' ) ; +test( macro , '7' , '94906265' , '-94906258' ) ; +test( macro , '-7' , '94906265' , '-94906272' ) ; +test( macro , '7' , '-94906265' , '94906272' ) ; +test( macro , '-7' , '-94906265' , '94906258' ) ; +test( macro , '7' , '94906266' , '-94906259' ) ; +test( macro , '-7' , '94906266' , '-94906273' ) ; +test( macro , '7' , '-94906266' , '94906273' ) ; +test( macro , '-7' , '-94906266' , '94906259' ) ; test( macro , '7' , '1073741824' , '-1073741817' ) ; test( macro , '-7' , '1073741824' , '-1073741831' ) ; test( macro , '7' , '-1073741824' , '1073741831' ) ; @@ -240,6 +264,14 @@ test( macro , '9' , '5678' , '-5669' ) ; test( macro , '-9' , '5678' , '-5687' ) ; test( macro , '9' , '-5678' , '5687' ) ; test( macro , '-9' , '-5678' , '5669' ) ; +test( macro , '9' , '94906265' , '-94906256' ) ; +test( macro , '-9' , '94906265' , '-94906274' ) ; +test( macro , '9' , '-94906265' , '94906274' ) ; +test( macro , '-9' , '-94906265' , '94906256' ) ; +test( macro , '9' , '94906266' , '-94906257' ) ; +test( macro , '-9' , '94906266' , '-94906275' ) ; +test( macro , '9' , '-94906266' , '94906275' ) ; +test( macro , '-9' , '-94906266' , '94906257' ) ; test( macro , '9' , '1073741824' , '-1073741815' ) ; test( macro , '-9' , '1073741824' , '-1073741833' ) ; test( macro , '9' , '-1073741824' , '1073741833' ) ; @@ -300,6 +332,14 @@ test( macro , '11' , '5678' , '-5667' ) ; test( macro , '-11' , '5678' , '-5689' ) ; test( macro , '11' , '-5678' , '5689' ) ; test( macro , '-11' , '-5678' , '5667' ) ; +test( macro , '11' , '94906265' , '-94906254' ) ; +test( macro , '-11' , '94906265' , '-94906276' ) ; +test( macro , '11' , '-94906265' , '94906276' ) ; +test( macro , '-11' , '-94906265' , '94906254' ) ; +test( macro , '11' , '94906266' , '-94906255' ) ; +test( macro , '-11' , '94906266' , '-94906277' ) ; +test( macro , '11' , '-94906266' , '94906277' ) ; +test( macro , '-11' , '-94906266' , '94906255' ) ; test( macro , '11' , '1073741824' , '-1073741813' ) ; test( macro , '-11' , '1073741824' , '-1073741835' ) ; test( macro , '11' , '-1073741824' , '1073741835' ) ; @@ -360,6 +400,14 @@ test( macro , '17' , '5678' , '-5661' ) ; test( macro , '-17' , '5678' , '-5695' ) ; test( macro , '17' , '-5678' , '5695' ) ; test( macro , '-17' , '-5678' , '5661' ) ; +test( macro , '17' , '94906265' , '-94906248' ) ; +test( macro , '-17' , '94906265' , '-94906282' ) ; +test( macro , '17' , '-94906265' , '94906282' ) ; +test( macro , '-17' , '-94906265' , '94906248' ) ; +test( macro , '17' , '94906266' , '-94906249' ) ; +test( macro , '-17' , '94906266' , '-94906283' ) ; +test( macro , '17' , '-94906266' , '94906283' ) ; +test( macro , '-17' , '-94906266' , '94906249' ) ; test( macro , '17' , '1073741824' , '-1073741807' ) ; test( macro , '-17' , '1073741824' , '-1073741841' ) ; test( macro , '17' , '-1073741824' , '1073741841' ) ; @@ -420,6 +468,14 @@ test( macro , '22' , '5678' , '-5656' ) ; test( macro , '-22' , '5678' , '-5700' ) ; test( macro , '22' , '-5678' , '5700' ) ; test( macro , '-22' , '-5678' , '5656' ) ; +test( macro , '22' , '94906265' , '-94906243' ) ; +test( macro , '-22' , '94906265' , '-94906287' ) ; +test( macro , '22' , '-94906265' , '94906287' ) ; +test( macro , '-22' , '-94906265' , '94906243' ) ; +test( macro , '22' , '94906266' , '-94906244' ) ; +test( macro , '-22' , '94906266' , '-94906288' ) ; +test( macro , '22' , '-94906266' , '94906288' ) ; +test( macro , '-22' , '-94906266' , '94906244' ) ; test( macro , '22' , '1073741824' , '-1073741802' ) ; test( macro , '-22' , '1073741824' , '-1073741846' ) ; test( macro , '22' , '-1073741824' , '1073741846' ) ; @@ -480,6 +536,14 @@ test( macro , '24' , '5678' , '-5654' ) ; test( macro , '-24' , '5678' , '-5702' ) ; test( macro , '24' , '-5678' , '5702' ) ; test( macro , '-24' , '-5678' , '5654' ) ; +test( macro , '24' , '94906265' , '-94906241' ) ; +test( macro , '-24' , '94906265' , '-94906289' ) ; +test( macro , '24' , '-94906265' , '94906289' ) ; +test( macro , '-24' , '-94906265' , '94906241' ) ; +test( macro , '24' , '94906266' , '-94906242' ) ; +test( macro , '-24' , '94906266' , '-94906290' ) ; +test( macro , '24' , '-94906266' , '94906290' ) ; +test( macro , '-24' , '-94906266' , '94906242' ) ; test( macro , '24' , '1073741824' , '-1073741800' ) ; test( macro , '-24' , '1073741824' , '-1073741848' ) ; test( macro , '24' , '-1073741824' , '1073741848' ) ; @@ -540,6 +604,14 @@ test( macro , '27' , '5678' , '-5651' ) ; test( macro , '-27' , '5678' , '-5705' ) ; test( macro , '27' , '-5678' , '5705' ) ; test( macro , '-27' , '-5678' , '5651' ) ; +test( macro , '27' , '94906265' , '-94906238' ) ; +test( macro , '-27' , '94906265' , '-94906292' ) ; +test( macro , '27' , '-94906265' , '94906292' ) ; +test( macro , '-27' , '-94906265' , '94906238' ) ; +test( macro , '27' , '94906266' , '-94906239' ) ; +test( macro , '-27' , '94906266' , '-94906293' ) ; +test( macro , '27' , '-94906266' , '94906293' ) ; +test( macro , '-27' , '-94906266' , '94906239' ) ; test( macro , '27' , '1073741824' , '-1073741797' ) ; test( macro , '-27' , '1073741824' , '-1073741851' ) ; test( macro , '27' , '-1073741824' , '1073741851' ) ; @@ -600,6 +672,14 @@ test( macro , '29' , '5678' , '-5649' ) ; test( macro , '-29' , '5678' , '-5707' ) ; test( macro , '29' , '-5678' , '5707' ) ; test( macro , '-29' , '-5678' , '5649' ) ; +test( macro , '29' , '94906265' , '-94906236' ) ; +test( macro , '-29' , '94906265' , '-94906294' ) ; +test( macro , '29' , '-94906265' , '94906294' ) ; +test( macro , '-29' , '-94906265' , '94906236' ) ; +test( macro , '29' , '94906266' , '-94906237' ) ; +test( macro , '-29' , '94906266' , '-94906295' ) ; +test( macro , '29' , '-94906266' , '94906295' ) ; +test( macro , '-29' , '-94906266' , '94906237' ) ; test( macro , '29' , '1073741824' , '-1073741795' ) ; test( macro , '-29' , '1073741824' , '-1073741853' ) ; test( macro , '29' , '-1073741824' , '1073741853' ) ; @@ -660,6 +740,14 @@ test( macro , '1234' , '5678' , '-4444' ) ; test( macro , '-1234' , '5678' , '-6912' ) ; test( macro , '1234' , '-5678' , '6912' ) ; test( macro , '-1234' , '-5678' , '4444' ) ; +test( macro , '1234' , '94906265' , '-94905031' ) ; +test( macro , '-1234' , '94906265' , '-94907499' ) ; +test( macro , '1234' , '-94906265' , '94907499' ) ; +test( macro , '-1234' , '-94906265' , '94905031' ) ; +test( macro , '1234' , '94906266' , '-94905032' ) ; +test( macro , '-1234' , '94906266' , '-94907500' ) ; +test( macro , '1234' , '-94906266' , '94907500' ) ; +test( macro , '-1234' , '-94906266' , '94905032' ) ; test( macro , '1234' , '1073741824' , '-1073740590' ) ; test( macro , '-1234' , '1073741824' , '-1073743058' ) ; test( macro , '1234' , '-1073741824' , '1073743058' ) ; @@ -720,6 +808,14 @@ test( macro , '5678' , '5678' , '0' ) ; test( macro , '-5678' , '5678' , '-11356' ) ; test( macro , '5678' , '-5678' , '11356' ) ; test( macro , '-5678' , '-5678' , '0' ) ; +test( macro , '5678' , '94906265' , '-94900587' ) ; +test( macro , '-5678' , '94906265' , '-94911943' ) ; +test( macro , '5678' , '-94906265' , '94911943' ) ; +test( macro , '-5678' , '-94906265' , '94900587' ) ; +test( macro , '5678' , '94906266' , '-94900588' ) ; +test( macro , '-5678' , '94906266' , '-94911944' ) ; +test( macro , '5678' , '-94906266' , '94911944' ) ; +test( macro , '-5678' , '-94906266' , '94900588' ) ; test( macro , '5678' , '1073741824' , '-1073736146' ) ; test( macro , '-5678' , '1073741824' , '-1073747502' ) ; test( macro , '5678' , '-1073741824' , '1073747502' ) ; @@ -732,6 +828,142 @@ test( macro , '5678' , '717897987691852588770249' , '-717897987691852588764571' test( macro , '-5678' , '717897987691852588770249' , '-717897987691852588775927' ) ; test( macro , '5678' , '-717897987691852588770249' , '717897987691852588775927' ) ; test( macro , '-5678' , '-717897987691852588770249' , '717897987691852588764571' ) ; +test( macro , '94906265' , '1' , '94906264' ) ; +test( macro , '-94906265' , '1' , '-94906266' ) ; +test( macro , '94906265' , '-1' , '94906266' ) ; +test( macro , '-94906265' , '-1' , '-94906264' ) ; +test( macro , '94906265' , '3' , '94906262' ) ; +test( macro , '-94906265' , '3' , '-94906268' ) ; +test( macro , '94906265' , '-3' , '94906268' ) ; +test( macro , '-94906265' , '-3' , '-94906262' ) ; +test( macro , '94906265' , '7' , '94906258' ) ; +test( macro , '-94906265' , '7' , '-94906272' ) ; +test( macro , '94906265' , '-7' , '94906272' ) ; +test( macro , '-94906265' , '-7' , '-94906258' ) ; +test( macro , '94906265' , '9' , '94906256' ) ; +test( macro , '-94906265' , '9' , '-94906274' ) ; +test( macro , '94906265' , '-9' , '94906274' ) ; +test( macro , '-94906265' , '-9' , '-94906256' ) ; +test( macro , '94906265' , '11' , '94906254' ) ; +test( macro , '-94906265' , '11' , '-94906276' ) ; +test( macro , '94906265' , '-11' , '94906276' ) ; +test( macro , '-94906265' , '-11' , '-94906254' ) ; +test( macro , '94906265' , '17' , '94906248' ) ; +test( macro , '-94906265' , '17' , '-94906282' ) ; +test( macro , '94906265' , '-17' , '94906282' ) ; +test( macro , '-94906265' , '-17' , '-94906248' ) ; +test( macro , '94906265' , '22' , '94906243' ) ; +test( macro , '-94906265' , '22' , '-94906287' ) ; +test( macro , '94906265' , '-22' , '94906287' ) ; +test( macro , '-94906265' , '-22' , '-94906243' ) ; +test( macro , '94906265' , '24' , '94906241' ) ; +test( macro , '-94906265' , '24' , '-94906289' ) ; +test( macro , '94906265' , '-24' , '94906289' ) ; +test( macro , '-94906265' , '-24' , '-94906241' ) ; +test( macro , '94906265' , '27' , '94906238' ) ; +test( macro , '-94906265' , '27' , '-94906292' ) ; +test( macro , '94906265' , '-27' , '94906292' ) ; +test( macro , '-94906265' , '-27' , '-94906238' ) ; +test( macro , '94906265' , '29' , '94906236' ) ; +test( macro , '-94906265' , '29' , '-94906294' ) ; +test( macro , '94906265' , '-29' , '94906294' ) ; +test( macro , '-94906265' , '-29' , '-94906236' ) ; +test( macro , '94906265' , '1234' , '94905031' ) ; +test( macro , '-94906265' , '1234' , '-94907499' ) ; +test( macro , '94906265' , '-1234' , '94907499' ) ; +test( macro , '-94906265' , '-1234' , '-94905031' ) ; +test( macro , '94906265' , '5678' , '94900587' ) ; +test( macro , '-94906265' , '5678' , '-94911943' ) ; +test( macro , '94906265' , '-5678' , '94911943' ) ; +test( macro , '-94906265' , '-5678' , '-94900587' ) ; +test( macro , '94906265' , '94906265' , '0' ) ; +test( macro , '-94906265' , '94906265' , '-189812530' ) ; +test( macro , '94906265' , '-94906265' , '189812530' ) ; +test( macro , '-94906265' , '-94906265' , '0' ) ; +test( macro , '94906265' , '94906266' , '-1' ) ; +test( macro , '-94906265' , '94906266' , '-189812531' ) ; +test( macro , '94906265' , '-94906266' , '189812531' ) ; +test( macro , '-94906265' , '-94906266' , '1' ) ; +test( macro , '94906265' , '1073741824' , '-978835559' ) ; +test( macro , '-94906265' , '1073741824' , '-1168648089' ) ; +test( macro , '94906265' , '-1073741824' , '1168648089' ) ; +test( macro , '-94906265' , '-1073741824' , '978835559' ) ; +test( macro , '94906265' , '51676101935731' , '-51676007029466' ) ; +test( macro , '-94906265' , '51676101935731' , '-51676196841996' ) ; +test( macro , '94906265' , '-51676101935731' , '51676196841996' ) ; +test( macro , '-94906265' , '-51676101935731' , '51676007029466' ) ; +test( macro , '94906265' , '717897987691852588770249' , '-717897987691852493863984' ) ; +test( macro , '-94906265' , '717897987691852588770249' , '-717897987691852683676514' ) ; +test( macro , '94906265' , '-717897987691852588770249' , '717897987691852683676514' ) ; +test( macro , '-94906265' , '-717897987691852588770249' , '717897987691852493863984' ) ; +test( macro , '94906266' , '1' , '94906265' ) ; +test( macro , '-94906266' , '1' , '-94906267' ) ; +test( macro , '94906266' , '-1' , '94906267' ) ; +test( macro , '-94906266' , '-1' , '-94906265' ) ; +test( macro , '94906266' , '3' , '94906263' ) ; +test( macro , '-94906266' , '3' , '-94906269' ) ; +test( macro , '94906266' , '-3' , '94906269' ) ; +test( macro , '-94906266' , '-3' , '-94906263' ) ; +test( macro , '94906266' , '7' , '94906259' ) ; +test( macro , '-94906266' , '7' , '-94906273' ) ; +test( macro , '94906266' , '-7' , '94906273' ) ; +test( macro , '-94906266' , '-7' , '-94906259' ) ; +test( macro , '94906266' , '9' , '94906257' ) ; +test( macro , '-94906266' , '9' , '-94906275' ) ; +test( macro , '94906266' , '-9' , '94906275' ) ; +test( macro , '-94906266' , '-9' , '-94906257' ) ; +test( macro , '94906266' , '11' , '94906255' ) ; +test( macro , '-94906266' , '11' , '-94906277' ) ; +test( macro , '94906266' , '-11' , '94906277' ) ; +test( macro , '-94906266' , '-11' , '-94906255' ) ; +test( macro , '94906266' , '17' , '94906249' ) ; +test( macro , '-94906266' , '17' , '-94906283' ) ; +test( macro , '94906266' , '-17' , '94906283' ) ; +test( macro , '-94906266' , '-17' , '-94906249' ) ; +test( macro , '94906266' , '22' , '94906244' ) ; +test( macro , '-94906266' , '22' , '-94906288' ) ; +test( macro , '94906266' , '-22' , '94906288' ) ; +test( macro , '-94906266' , '-22' , '-94906244' ) ; +test( macro , '94906266' , '24' , '94906242' ) ; +test( macro , '-94906266' , '24' , '-94906290' ) ; +test( macro , '94906266' , '-24' , '94906290' ) ; +test( macro , '-94906266' , '-24' , '-94906242' ) ; +test( macro , '94906266' , '27' , '94906239' ) ; +test( macro , '-94906266' , '27' , '-94906293' ) ; +test( macro , '94906266' , '-27' , '94906293' ) ; +test( macro , '-94906266' , '-27' , '-94906239' ) ; +test( macro , '94906266' , '29' , '94906237' ) ; +test( macro , '-94906266' , '29' , '-94906295' ) ; +test( macro , '94906266' , '-29' , '94906295' ) ; +test( macro , '-94906266' , '-29' , '-94906237' ) ; +test( macro , '94906266' , '1234' , '94905032' ) ; +test( macro , '-94906266' , '1234' , '-94907500' ) ; +test( macro , '94906266' , '-1234' , '94907500' ) ; +test( macro , '-94906266' , '-1234' , '-94905032' ) ; +test( macro , '94906266' , '5678' , '94900588' ) ; +test( macro , '-94906266' , '5678' , '-94911944' ) ; +test( macro , '94906266' , '-5678' , '94911944' ) ; +test( macro , '-94906266' , '-5678' , '-94900588' ) ; +test( macro , '94906266' , '94906265' , '1' ) ; +test( macro , '-94906266' , '94906265' , '-189812531' ) ; +test( macro , '94906266' , '-94906265' , '189812531' ) ; +test( macro , '-94906266' , '-94906265' , '-1' ) ; +test( macro , '94906266' , '94906266' , '0' ) ; +test( macro , '-94906266' , '94906266' , '-189812532' ) ; +test( macro , '94906266' , '-94906266' , '189812532' ) ; +test( macro , '-94906266' , '-94906266' , '0' ) ; +test( macro , '94906266' , '1073741824' , '-978835558' ) ; +test( macro , '-94906266' , '1073741824' , '-1168648090' ) ; +test( macro , '94906266' , '-1073741824' , '1168648090' ) ; +test( macro , '-94906266' , '-1073741824' , '978835558' ) ; +test( macro , '94906266' , '51676101935731' , '-51676007029465' ) ; +test( macro , '-94906266' , '51676101935731' , '-51676196841997' ) ; +test( macro , '94906266' , '-51676101935731' , '51676196841997' ) ; +test( macro , '-94906266' , '-51676101935731' , '51676007029465' ) ; +test( macro , '94906266' , '717897987691852588770249' , '-717897987691852493863983' ) ; +test( macro , '-94906266' , '717897987691852588770249' , '-717897987691852683676515' ) ; +test( macro , '94906266' , '-717897987691852588770249' , '717897987691852683676515' ) ; +test( macro , '-94906266' , '-717897987691852588770249' , '717897987691852493863983' ) ; test( macro , '1073741824' , '1' , '1073741823' ) ; test( macro , '-1073741824' , '1' , '-1073741825' ) ; test( macro , '1073741824' , '-1' , '1073741825' ) ; @@ -780,6 +1012,14 @@ test( macro , '1073741824' , '5678' , '1073736146' ) ; test( macro , '-1073741824' , '5678' , '-1073747502' ) ; test( macro , '1073741824' , '-5678' , '1073747502' ) ; test( macro , '-1073741824' , '-5678' , '-1073736146' ) ; +test( macro , '1073741824' , '94906265' , '978835559' ) ; +test( macro , '-1073741824' , '94906265' , '-1168648089' ) ; +test( macro , '1073741824' , '-94906265' , '1168648089' ) ; +test( macro , '-1073741824' , '-94906265' , '-978835559' ) ; +test( macro , '1073741824' , '94906266' , '978835558' ) ; +test( macro , '-1073741824' , '94906266' , '-1168648090' ) ; +test( macro , '1073741824' , '-94906266' , '1168648090' ) ; +test( macro , '-1073741824' , '-94906266' , '-978835558' ) ; test( macro , '1073741824' , '1073741824' , '0' ) ; test( macro , '-1073741824' , '1073741824' , '-2147483648' ) ; test( macro , '1073741824' , '-1073741824' , '2147483648' ) ; @@ -840,6 +1080,14 @@ test( macro , '51676101935731' , '5678' , '51676101930053' ) ; test( macro , '-51676101935731' , '5678' , '-51676101941409' ) ; test( macro , '51676101935731' , '-5678' , '51676101941409' ) ; test( macro , '-51676101935731' , '-5678' , '-51676101930053' ) ; +test( macro , '51676101935731' , '94906265' , '51676007029466' ) ; +test( macro , '-51676101935731' , '94906265' , '-51676196841996' ) ; +test( macro , '51676101935731' , '-94906265' , '51676196841996' ) ; +test( macro , '-51676101935731' , '-94906265' , '-51676007029466' ) ; +test( macro , '51676101935731' , '94906266' , '51676007029465' ) ; +test( macro , '-51676101935731' , '94906266' , '-51676196841997' ) ; +test( macro , '51676101935731' , '-94906266' , '51676196841997' ) ; +test( macro , '-51676101935731' , '-94906266' , '-51676007029465' ) ; test( macro , '51676101935731' , '1073741824' , '51675028193907' ) ; test( macro , '-51676101935731' , '1073741824' , '-51677175677555' ) ; test( macro , '51676101935731' , '-1073741824' , '51677175677555' ) ; @@ -900,6 +1148,14 @@ test( macro , '717897987691852588770249' , '5678' , '717897987691852588764571' ) test( macro , '-717897987691852588770249' , '5678' , '-717897987691852588775927' ) ; test( macro , '717897987691852588770249' , '-5678' , '717897987691852588775927' ) ; test( macro , '-717897987691852588770249' , '-5678' , '-717897987691852588764571' ) ; +test( macro , '717897987691852588770249' , '94906265' , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , '94906265' , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , '-94906265' , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , '-94906265' , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , '94906266' , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , '94906266' , '-717897987691852683676515' ) ; +test( macro , '717897987691852588770249' , '-94906266' , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , '-94906266' , '-717897987691852493863983' ) ; test( macro , '717897987691852588770249' , '1073741824' , '717897987691851515028425' ) ; test( macro , '-717897987691852588770249' , '1073741824' , '-717897987691853662512073' ) ; test( macro , '717897987691852588770249' , '-1073741824' , '717897987691853662512073' ) ; diff --git a/test/src/integer/arithmetic/subn.js b/test/src/integer/arithmetic/subn.js index 55e910a..069e50d 100644 --- a/test/src/integer/arithmetic/subn.js +++ b/test/src/integer/arithmetic/subn.js @@ -58,6 +58,14 @@ test( macro , '1' , 5678 , '-5677' ) ; test( macro , '-1' , 5678 , '-5679' ) ; test( macro , '1' , -5678 , '5679' ) ; test( macro , '-1' , -5678 , '5677' ) ; +test( macro , '1' , 94906265 , '-94906264' ) ; +test( macro , '-1' , 94906265 , '-94906266' ) ; +test( macro , '1' , -94906265 , '94906266' ) ; +test( macro , '-1' , -94906265 , '94906264' ) ; +test( macro , '1' , 94906266 , '-94906265' ) ; +test( macro , '-1' , 94906266 , '-94906267' ) ; +test( macro , '1' , -94906266 , '94906267' ) ; +test( macro , '-1' , -94906266 , '94906265' ) ; test( macro , '1' , 1073741824 , '-1073741823' ) ; test( macro , '-1' , 1073741824 , '-1073741825' ) ; test( macro , '1' , -1073741824 , '1073741825' ) ; @@ -114,6 +122,14 @@ test( macro , '3' , 5678 , '-5675' ) ; test( macro , '-3' , 5678 , '-5681' ) ; test( macro , '3' , -5678 , '5681' ) ; test( macro , '-3' , -5678 , '5675' ) ; +test( macro , '3' , 94906265 , '-94906262' ) ; +test( macro , '-3' , 94906265 , '-94906268' ) ; +test( macro , '3' , -94906265 , '94906268' ) ; +test( macro , '-3' , -94906265 , '94906262' ) ; +test( macro , '3' , 94906266 , '-94906263' ) ; +test( macro , '-3' , 94906266 , '-94906269' ) ; +test( macro , '3' , -94906266 , '94906269' ) ; +test( macro , '-3' , -94906266 , '94906263' ) ; test( macro , '3' , 1073741824 , '-1073741821' ) ; test( macro , '-3' , 1073741824 , '-1073741827' ) ; test( macro , '3' , -1073741824 , '1073741827' ) ; @@ -170,6 +186,14 @@ test( macro , '7' , 5678 , '-5671' ) ; test( macro , '-7' , 5678 , '-5685' ) ; test( macro , '7' , -5678 , '5685' ) ; test( macro , '-7' , -5678 , '5671' ) ; +test( macro , '7' , 94906265 , '-94906258' ) ; +test( macro , '-7' , 94906265 , '-94906272' ) ; +test( macro , '7' , -94906265 , '94906272' ) ; +test( macro , '-7' , -94906265 , '94906258' ) ; +test( macro , '7' , 94906266 , '-94906259' ) ; +test( macro , '-7' , 94906266 , '-94906273' ) ; +test( macro , '7' , -94906266 , '94906273' ) ; +test( macro , '-7' , -94906266 , '94906259' ) ; test( macro , '7' , 1073741824 , '-1073741817' ) ; test( macro , '-7' , 1073741824 , '-1073741831' ) ; test( macro , '7' , -1073741824 , '1073741831' ) ; @@ -226,6 +250,14 @@ test( macro , '9' , 5678 , '-5669' ) ; test( macro , '-9' , 5678 , '-5687' ) ; test( macro , '9' , -5678 , '5687' ) ; test( macro , '-9' , -5678 , '5669' ) ; +test( macro , '9' , 94906265 , '-94906256' ) ; +test( macro , '-9' , 94906265 , '-94906274' ) ; +test( macro , '9' , -94906265 , '94906274' ) ; +test( macro , '-9' , -94906265 , '94906256' ) ; +test( macro , '9' , 94906266 , '-94906257' ) ; +test( macro , '-9' , 94906266 , '-94906275' ) ; +test( macro , '9' , -94906266 , '94906275' ) ; +test( macro , '-9' , -94906266 , '94906257' ) ; test( macro , '9' , 1073741824 , '-1073741815' ) ; test( macro , '-9' , 1073741824 , '-1073741833' ) ; test( macro , '9' , -1073741824 , '1073741833' ) ; @@ -282,6 +314,14 @@ test( macro , '11' , 5678 , '-5667' ) ; test( macro , '-11' , 5678 , '-5689' ) ; test( macro , '11' , -5678 , '5689' ) ; test( macro , '-11' , -5678 , '5667' ) ; +test( macro , '11' , 94906265 , '-94906254' ) ; +test( macro , '-11' , 94906265 , '-94906276' ) ; +test( macro , '11' , -94906265 , '94906276' ) ; +test( macro , '-11' , -94906265 , '94906254' ) ; +test( macro , '11' , 94906266 , '-94906255' ) ; +test( macro , '-11' , 94906266 , '-94906277' ) ; +test( macro , '11' , -94906266 , '94906277' ) ; +test( macro , '-11' , -94906266 , '94906255' ) ; test( macro , '11' , 1073741824 , '-1073741813' ) ; test( macro , '-11' , 1073741824 , '-1073741835' ) ; test( macro , '11' , -1073741824 , '1073741835' ) ; @@ -338,6 +378,14 @@ test( macro , '17' , 5678 , '-5661' ) ; test( macro , '-17' , 5678 , '-5695' ) ; test( macro , '17' , -5678 , '5695' ) ; test( macro , '-17' , -5678 , '5661' ) ; +test( macro , '17' , 94906265 , '-94906248' ) ; +test( macro , '-17' , 94906265 , '-94906282' ) ; +test( macro , '17' , -94906265 , '94906282' ) ; +test( macro , '-17' , -94906265 , '94906248' ) ; +test( macro , '17' , 94906266 , '-94906249' ) ; +test( macro , '-17' , 94906266 , '-94906283' ) ; +test( macro , '17' , -94906266 , '94906283' ) ; +test( macro , '-17' , -94906266 , '94906249' ) ; test( macro , '17' , 1073741824 , '-1073741807' ) ; test( macro , '-17' , 1073741824 , '-1073741841' ) ; test( macro , '17' , -1073741824 , '1073741841' ) ; @@ -394,6 +442,14 @@ test( macro , '22' , 5678 , '-5656' ) ; test( macro , '-22' , 5678 , '-5700' ) ; test( macro , '22' , -5678 , '5700' ) ; test( macro , '-22' , -5678 , '5656' ) ; +test( macro , '22' , 94906265 , '-94906243' ) ; +test( macro , '-22' , 94906265 , '-94906287' ) ; +test( macro , '22' , -94906265 , '94906287' ) ; +test( macro , '-22' , -94906265 , '94906243' ) ; +test( macro , '22' , 94906266 , '-94906244' ) ; +test( macro , '-22' , 94906266 , '-94906288' ) ; +test( macro , '22' , -94906266 , '94906288' ) ; +test( macro , '-22' , -94906266 , '94906244' ) ; test( macro , '22' , 1073741824 , '-1073741802' ) ; test( macro , '-22' , 1073741824 , '-1073741846' ) ; test( macro , '22' , -1073741824 , '1073741846' ) ; @@ -450,6 +506,14 @@ test( macro , '24' , 5678 , '-5654' ) ; test( macro , '-24' , 5678 , '-5702' ) ; test( macro , '24' , -5678 , '5702' ) ; test( macro , '-24' , -5678 , '5654' ) ; +test( macro , '24' , 94906265 , '-94906241' ) ; +test( macro , '-24' , 94906265 , '-94906289' ) ; +test( macro , '24' , -94906265 , '94906289' ) ; +test( macro , '-24' , -94906265 , '94906241' ) ; +test( macro , '24' , 94906266 , '-94906242' ) ; +test( macro , '-24' , 94906266 , '-94906290' ) ; +test( macro , '24' , -94906266 , '94906290' ) ; +test( macro , '-24' , -94906266 , '94906242' ) ; test( macro , '24' , 1073741824 , '-1073741800' ) ; test( macro , '-24' , 1073741824 , '-1073741848' ) ; test( macro , '24' , -1073741824 , '1073741848' ) ; @@ -506,6 +570,14 @@ test( macro , '27' , 5678 , '-5651' ) ; test( macro , '-27' , 5678 , '-5705' ) ; test( macro , '27' , -5678 , '5705' ) ; test( macro , '-27' , -5678 , '5651' ) ; +test( macro , '27' , 94906265 , '-94906238' ) ; +test( macro , '-27' , 94906265 , '-94906292' ) ; +test( macro , '27' , -94906265 , '94906292' ) ; +test( macro , '-27' , -94906265 , '94906238' ) ; +test( macro , '27' , 94906266 , '-94906239' ) ; +test( macro , '-27' , 94906266 , '-94906293' ) ; +test( macro , '27' , -94906266 , '94906293' ) ; +test( macro , '-27' , -94906266 , '94906239' ) ; test( macro , '27' , 1073741824 , '-1073741797' ) ; test( macro , '-27' , 1073741824 , '-1073741851' ) ; test( macro , '27' , -1073741824 , '1073741851' ) ; @@ -562,6 +634,14 @@ test( macro , '29' , 5678 , '-5649' ) ; test( macro , '-29' , 5678 , '-5707' ) ; test( macro , '29' , -5678 , '5707' ) ; test( macro , '-29' , -5678 , '5649' ) ; +test( macro , '29' , 94906265 , '-94906236' ) ; +test( macro , '-29' , 94906265 , '-94906294' ) ; +test( macro , '29' , -94906265 , '94906294' ) ; +test( macro , '-29' , -94906265 , '94906236' ) ; +test( macro , '29' , 94906266 , '-94906237' ) ; +test( macro , '-29' , 94906266 , '-94906295' ) ; +test( macro , '29' , -94906266 , '94906295' ) ; +test( macro , '-29' , -94906266 , '94906237' ) ; test( macro , '29' , 1073741824 , '-1073741795' ) ; test( macro , '-29' , 1073741824 , '-1073741853' ) ; test( macro , '29' , -1073741824 , '1073741853' ) ; @@ -618,6 +698,14 @@ test( macro , '1234' , 5678 , '-4444' ) ; test( macro , '-1234' , 5678 , '-6912' ) ; test( macro , '1234' , -5678 , '6912' ) ; test( macro , '-1234' , -5678 , '4444' ) ; +test( macro , '1234' , 94906265 , '-94905031' ) ; +test( macro , '-1234' , 94906265 , '-94907499' ) ; +test( macro , '1234' , -94906265 , '94907499' ) ; +test( macro , '-1234' , -94906265 , '94905031' ) ; +test( macro , '1234' , 94906266 , '-94905032' ) ; +test( macro , '-1234' , 94906266 , '-94907500' ) ; +test( macro , '1234' , -94906266 , '94907500' ) ; +test( macro , '-1234' , -94906266 , '94905032' ) ; test( macro , '1234' , 1073741824 , '-1073740590' ) ; test( macro , '-1234' , 1073741824 , '-1073743058' ) ; test( macro , '1234' , -1073741824 , '1073743058' ) ; @@ -674,6 +762,14 @@ test( macro , '5678' , 5678 , '0' ) ; test( macro , '-5678' , 5678 , '-11356' ) ; test( macro , '5678' , -5678 , '11356' ) ; test( macro , '-5678' , -5678 , '0' ) ; +test( macro , '5678' , 94906265 , '-94900587' ) ; +test( macro , '-5678' , 94906265 , '-94911943' ) ; +test( macro , '5678' , -94906265 , '94911943' ) ; +test( macro , '-5678' , -94906265 , '94900587' ) ; +test( macro , '5678' , 94906266 , '-94900588' ) ; +test( macro , '-5678' , 94906266 , '-94911944' ) ; +test( macro , '5678' , -94906266 , '94911944' ) ; +test( macro , '-5678' , -94906266 , '94900588' ) ; test( macro , '5678' , 1073741824 , '-1073736146' ) ; test( macro , '-5678' , 1073741824 , '-1073747502' ) ; test( macro , '5678' , -1073741824 , '1073747502' ) ; @@ -682,6 +778,134 @@ test( macro , '5678' , 51676101935731 , '-51676101930053' ) ; test( macro , '-5678' , 51676101935731 , '-51676101941409' ) ; test( macro , '5678' , -51676101935731 , '51676101941409' ) ; test( macro , '-5678' , -51676101935731 , '51676101930053' ) ; +test( macro , '94906265' , 1 , '94906264' ) ; +test( macro , '-94906265' , 1 , '-94906266' ) ; +test( macro , '94906265' , -1 , '94906266' ) ; +test( macro , '-94906265' , -1 , '-94906264' ) ; +test( macro , '94906265' , 3 , '94906262' ) ; +test( macro , '-94906265' , 3 , '-94906268' ) ; +test( macro , '94906265' , -3 , '94906268' ) ; +test( macro , '-94906265' , -3 , '-94906262' ) ; +test( macro , '94906265' , 7 , '94906258' ) ; +test( macro , '-94906265' , 7 , '-94906272' ) ; +test( macro , '94906265' , -7 , '94906272' ) ; +test( macro , '-94906265' , -7 , '-94906258' ) ; +test( macro , '94906265' , 9 , '94906256' ) ; +test( macro , '-94906265' , 9 , '-94906274' ) ; +test( macro , '94906265' , -9 , '94906274' ) ; +test( macro , '-94906265' , -9 , '-94906256' ) ; +test( macro , '94906265' , 11 , '94906254' ) ; +test( macro , '-94906265' , 11 , '-94906276' ) ; +test( macro , '94906265' , -11 , '94906276' ) ; +test( macro , '-94906265' , -11 , '-94906254' ) ; +test( macro , '94906265' , 17 , '94906248' ) ; +test( macro , '-94906265' , 17 , '-94906282' ) ; +test( macro , '94906265' , -17 , '94906282' ) ; +test( macro , '-94906265' , -17 , '-94906248' ) ; +test( macro , '94906265' , 22 , '94906243' ) ; +test( macro , '-94906265' , 22 , '-94906287' ) ; +test( macro , '94906265' , -22 , '94906287' ) ; +test( macro , '-94906265' , -22 , '-94906243' ) ; +test( macro , '94906265' , 24 , '94906241' ) ; +test( macro , '-94906265' , 24 , '-94906289' ) ; +test( macro , '94906265' , -24 , '94906289' ) ; +test( macro , '-94906265' , -24 , '-94906241' ) ; +test( macro , '94906265' , 27 , '94906238' ) ; +test( macro , '-94906265' , 27 , '-94906292' ) ; +test( macro , '94906265' , -27 , '94906292' ) ; +test( macro , '-94906265' , -27 , '-94906238' ) ; +test( macro , '94906265' , 29 , '94906236' ) ; +test( macro , '-94906265' , 29 , '-94906294' ) ; +test( macro , '94906265' , -29 , '94906294' ) ; +test( macro , '-94906265' , -29 , '-94906236' ) ; +test( macro , '94906265' , 1234 , '94905031' ) ; +test( macro , '-94906265' , 1234 , '-94907499' ) ; +test( macro , '94906265' , -1234 , '94907499' ) ; +test( macro , '-94906265' , -1234 , '-94905031' ) ; +test( macro , '94906265' , 5678 , '94900587' ) ; +test( macro , '-94906265' , 5678 , '-94911943' ) ; +test( macro , '94906265' , -5678 , '94911943' ) ; +test( macro , '-94906265' , -5678 , '-94900587' ) ; +test( macro , '94906265' , 94906265 , '0' ) ; +test( macro , '-94906265' , 94906265 , '-189812530' ) ; +test( macro , '94906265' , -94906265 , '189812530' ) ; +test( macro , '-94906265' , -94906265 , '0' ) ; +test( macro , '94906265' , 94906266 , '-1' ) ; +test( macro , '-94906265' , 94906266 , '-189812531' ) ; +test( macro , '94906265' , -94906266 , '189812531' ) ; +test( macro , '-94906265' , -94906266 , '1' ) ; +test( macro , '94906265' , 1073741824 , '-978835559' ) ; +test( macro , '-94906265' , 1073741824 , '-1168648089' ) ; +test( macro , '94906265' , -1073741824 , '1168648089' ) ; +test( macro , '-94906265' , -1073741824 , '978835559' ) ; +test( macro , '94906265' , 51676101935731 , '-51676007029466' ) ; +test( macro , '-94906265' , 51676101935731 , '-51676196841996' ) ; +test( macro , '94906265' , -51676101935731 , '51676196841996' ) ; +test( macro , '-94906265' , -51676101935731 , '51676007029466' ) ; +test( macro , '94906266' , 1 , '94906265' ) ; +test( macro , '-94906266' , 1 , '-94906267' ) ; +test( macro , '94906266' , -1 , '94906267' ) ; +test( macro , '-94906266' , -1 , '-94906265' ) ; +test( macro , '94906266' , 3 , '94906263' ) ; +test( macro , '-94906266' , 3 , '-94906269' ) ; +test( macro , '94906266' , -3 , '94906269' ) ; +test( macro , '-94906266' , -3 , '-94906263' ) ; +test( macro , '94906266' , 7 , '94906259' ) ; +test( macro , '-94906266' , 7 , '-94906273' ) ; +test( macro , '94906266' , -7 , '94906273' ) ; +test( macro , '-94906266' , -7 , '-94906259' ) ; +test( macro , '94906266' , 9 , '94906257' ) ; +test( macro , '-94906266' , 9 , '-94906275' ) ; +test( macro , '94906266' , -9 , '94906275' ) ; +test( macro , '-94906266' , -9 , '-94906257' ) ; +test( macro , '94906266' , 11 , '94906255' ) ; +test( macro , '-94906266' , 11 , '-94906277' ) ; +test( macro , '94906266' , -11 , '94906277' ) ; +test( macro , '-94906266' , -11 , '-94906255' ) ; +test( macro , '94906266' , 17 , '94906249' ) ; +test( macro , '-94906266' , 17 , '-94906283' ) ; +test( macro , '94906266' , -17 , '94906283' ) ; +test( macro , '-94906266' , -17 , '-94906249' ) ; +test( macro , '94906266' , 22 , '94906244' ) ; +test( macro , '-94906266' , 22 , '-94906288' ) ; +test( macro , '94906266' , -22 , '94906288' ) ; +test( macro , '-94906266' , -22 , '-94906244' ) ; +test( macro , '94906266' , 24 , '94906242' ) ; +test( macro , '-94906266' , 24 , '-94906290' ) ; +test( macro , '94906266' , -24 , '94906290' ) ; +test( macro , '-94906266' , -24 , '-94906242' ) ; +test( macro , '94906266' , 27 , '94906239' ) ; +test( macro , '-94906266' , 27 , '-94906293' ) ; +test( macro , '94906266' , -27 , '94906293' ) ; +test( macro , '-94906266' , -27 , '-94906239' ) ; +test( macro , '94906266' , 29 , '94906237' ) ; +test( macro , '-94906266' , 29 , '-94906295' ) ; +test( macro , '94906266' , -29 , '94906295' ) ; +test( macro , '-94906266' , -29 , '-94906237' ) ; +test( macro , '94906266' , 1234 , '94905032' ) ; +test( macro , '-94906266' , 1234 , '-94907500' ) ; +test( macro , '94906266' , -1234 , '94907500' ) ; +test( macro , '-94906266' , -1234 , '-94905032' ) ; +test( macro , '94906266' , 5678 , '94900588' ) ; +test( macro , '-94906266' , 5678 , '-94911944' ) ; +test( macro , '94906266' , -5678 , '94911944' ) ; +test( macro , '-94906266' , -5678 , '-94900588' ) ; +test( macro , '94906266' , 94906265 , '1' ) ; +test( macro , '-94906266' , 94906265 , '-189812531' ) ; +test( macro , '94906266' , -94906265 , '189812531' ) ; +test( macro , '-94906266' , -94906265 , '-1' ) ; +test( macro , '94906266' , 94906266 , '0' ) ; +test( macro , '-94906266' , 94906266 , '-189812532' ) ; +test( macro , '94906266' , -94906266 , '189812532' ) ; +test( macro , '-94906266' , -94906266 , '0' ) ; +test( macro , '94906266' , 1073741824 , '-978835558' ) ; +test( macro , '-94906266' , 1073741824 , '-1168648090' ) ; +test( macro , '94906266' , -1073741824 , '1168648090' ) ; +test( macro , '-94906266' , -1073741824 , '978835558' ) ; +test( macro , '94906266' , 51676101935731 , '-51676007029465' ) ; +test( macro , '-94906266' , 51676101935731 , '-51676196841997' ) ; +test( macro , '94906266' , -51676101935731 , '51676196841997' ) ; +test( macro , '-94906266' , -51676101935731 , '51676007029465' ) ; test( macro , '1073741824' , 1 , '1073741823' ) ; test( macro , '-1073741824' , 1 , '-1073741825' ) ; test( macro , '1073741824' , -1 , '1073741825' ) ; @@ -730,6 +954,14 @@ test( macro , '1073741824' , 5678 , '1073736146' ) ; test( macro , '-1073741824' , 5678 , '-1073747502' ) ; test( macro , '1073741824' , -5678 , '1073747502' ) ; test( macro , '-1073741824' , -5678 , '-1073736146' ) ; +test( macro , '1073741824' , 94906265 , '978835559' ) ; +test( macro , '-1073741824' , 94906265 , '-1168648089' ) ; +test( macro , '1073741824' , -94906265 , '1168648089' ) ; +test( macro , '-1073741824' , -94906265 , '-978835559' ) ; +test( macro , '1073741824' , 94906266 , '978835558' ) ; +test( macro , '-1073741824' , 94906266 , '-1168648090' ) ; +test( macro , '1073741824' , -94906266 , '1168648090' ) ; +test( macro , '-1073741824' , -94906266 , '-978835558' ) ; test( macro , '1073741824' , 1073741824 , '0' ) ; test( macro , '-1073741824' , 1073741824 , '-2147483648' ) ; test( macro , '1073741824' , -1073741824 , '2147483648' ) ; @@ -786,6 +1018,14 @@ test( macro , '51676101935731' , 5678 , '51676101930053' ) ; test( macro , '-51676101935731' , 5678 , '-51676101941409' ) ; test( macro , '51676101935731' , -5678 , '51676101941409' ) ; test( macro , '-51676101935731' , -5678 , '-51676101930053' ) ; +test( macro , '51676101935731' , 94906265 , '51676007029466' ) ; +test( macro , '-51676101935731' , 94906265 , '-51676196841996' ) ; +test( macro , '51676101935731' , -94906265 , '51676196841996' ) ; +test( macro , '-51676101935731' , -94906265 , '-51676007029466' ) ; +test( macro , '51676101935731' , 94906266 , '51676007029465' ) ; +test( macro , '-51676101935731' , 94906266 , '-51676196841997' ) ; +test( macro , '51676101935731' , -94906266 , '51676196841997' ) ; +test( macro , '-51676101935731' , -94906266 , '-51676007029465' ) ; test( macro , '51676101935731' , 1073741824 , '51675028193907' ) ; test( macro , '-51676101935731' , 1073741824 , '-51677175677555' ) ; test( macro , '51676101935731' , -1073741824 , '51677175677555' ) ; @@ -842,6 +1082,14 @@ test( macro , '717897987691852588770249' , 5678 , '717897987691852588764571' ) ; test( macro , '-717897987691852588770249' , 5678 , '-717897987691852588775927' ) ; test( macro , '717897987691852588770249' , -5678 , '717897987691852588775927' ) ; test( macro , '-717897987691852588770249' , -5678 , '-717897987691852588764571' ) ; +test( macro , '717897987691852588770249' , 94906265 , '717897987691852493863984' ) ; +test( macro , '-717897987691852588770249' , 94906265 , '-717897987691852683676514' ) ; +test( macro , '717897987691852588770249' , -94906265 , '717897987691852683676514' ) ; +test( macro , '-717897987691852588770249' , -94906265 , '-717897987691852493863984' ) ; +test( macro , '717897987691852588770249' , 94906266 , '717897987691852493863983' ) ; +test( macro , '-717897987691852588770249' , 94906266 , '-717897987691852683676515' ) ; +test( macro , '717897987691852588770249' , -94906266 , '717897987691852683676515' ) ; +test( macro , '-717897987691852588770249' , -94906266 , '-717897987691852493863983' ) ; test( macro , '717897987691852588770249' , 1073741824 , '717897987691851515028425' ) ; test( macro , '-717897987691852588770249' , 1073741824 , '-717897987691853662512073' ) ; test( macro , '717897987691852588770249' , -1073741824 , '717897987691853662512073' ) ; diff --git a/yarn.lock b/yarn.lock index 9746323..20bb8a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,10 +24,10 @@ resolved "https://registry.yarnpkg.com/@aureooms/js-error/-/js-error-4.0.0.tgz#cea0a145f5290f443911b3d1890d7254a18eeb9b" integrity sha512-omwmz82cPxqRnorZ8tqeIcPj1QcJnCsMiVYcwOh/QfUXhJ+DmiBPgWOm5WWAQvQzYVKe0/k7+s2ie+UoRJagjA== -"@aureooms/js-integer-big-endian@^8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@aureooms/js-integer-big-endian/-/js-integer-big-endian-8.0.0.tgz#fdf21db95bb6ce88763fd91646e3c09d865fd321" - integrity sha512-2YuH9/ejGk6RCOVjsSVNG2evoHPF9hTjdle1sRET91hh566uVkcBezE7DT/iLGBsSoz8v1OhPRT83EazAgbq6g== +"@aureooms/js-integer-big-endian@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@aureooms/js-integer-big-endian/-/js-integer-big-endian-9.0.0.tgz#34f8a14087a1e07bbf11538f0982f5f88ef228db" + integrity sha512-tYaazBQTHuyxlXS5oAazmR5tOSjiiCh75vEyb/GJghVzvObk/SqU1ElQxa3JW9WpIuLXcFq6xlDAoeaK0mlGcg== "@aureooms/js-itertools@4.0.0": version "4.0.0" @@ -920,9 +920,9 @@ integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*": - version "13.13.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.4.tgz#1581d6c16e3d4803eb079c87d4ac893ee7501c2c" - integrity sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA== + version "13.13.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.5.tgz#96ec3b0afafd64a4ccea9107b75bf8489f0e5765" + integrity sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -957,9 +957,9 @@ acorn@^2.1.0, acorn@^2.4.0: integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" + integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== aggregate-error@^3.0.0: version "3.0.1" @@ -1182,10 +1182,10 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -ava@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/ava/-/ava-3.8.1.tgz#ec50814f8e6c769b8ed0dcc64bca990cd06bb2d1" - integrity sha512-OPWrTxcf1EbtAaGGFQPLbx4AaVqPrFMumKOKn2SzIRo+RTKb33lF2aoVnWqBeZaJ68uSc9R6jqIE7qkG6O33uQ== +ava@3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/ava/-/ava-3.8.2.tgz#877c9eb861763a185bbabd54f359e1fbe57d1754" + integrity sha512-sph3oUsVTGsq4qbgeWys03QKCmXjkZUO3oPnFWXEW6g1SReCY9vuONGghMgw1G6VOzkg1k+niqJsOzwfO8h9Ng== dependencies: "@concordance/react" "^2.0.0" acorn "^7.1.1" @@ -1218,7 +1218,7 @@ ava@3.8.1: indent-string "^4.0.0" is-error "^2.2.2" is-plain-object "^3.0.0" - is-promise "^3.0.0" + is-promise "^4.0.0" lodash "^4.17.15" matcher "^3.0.0" md5-hex "^3.0.1" @@ -1229,12 +1229,12 @@ ava@3.8.1: picomatch "^2.2.2" pkg-conf "^3.1.0" plur "^4.0.0" - pretty-ms "^6.0.1" + pretty-ms "^7.0.0" read-pkg "^5.2.0" resolve-cwd "^3.0.0" slash "^3.0.0" source-map-support "^0.5.19" - stack-utils "^2.0.1" + stack-utils "^2.0.2" strip-ansi "^6.0.0" supertap "^1.0.0" temp-dir "^2.0.0" @@ -1383,9 +1383,9 @@ bindings@^1.5.0: file-uri-to-path "1.0.0" blueimp-md5@^2.10.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.14.0.tgz#ac45786ede87d2a985478040d2ac38a9af7a16ac" - integrity sha512-fhX8JsIgugJ39g9MUJ4Y0S+WYd/1HATNVzW4nEVknP5uJU1mA7LZCV3OuVH9OvxpuYQXu6ttst0IYIlAyVfBQg== + version "2.15.0" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.15.0.tgz#ae945f87ca6c2c11e2562983e11450b0545f9bb3" + integrity sha512-Zc6sowqlCWu3+V0bocZwdaPPXlRv14EHtYcQDCOghj9EdyKLMkAOODBh3HHAx5r7QRylDYCOaXa/b/edgBLDpA== boolbase@~1.0.0: version "1.0.0" @@ -1515,9 +1515,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001043: - version "1.0.30001048" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz#4bb4f1bc2eb304e5e1154da80b93dee3f1cf447e" - integrity sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg== + version "1.0.30001054" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001054.tgz#7e82fc42d927980b0ce1426c4813df12381e1a75" + integrity sha512-jiKlTI6Ur8Kjfj8z0muGrV6FscpRvefcQVPSuMuXnvRCfExU7zlVLNjmOz1TnurWgUrAY7MMmjyy+uTgIl1XHw== caseless@~0.12.0: version "0.12.0" @@ -2215,9 +2215,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.3.413: - version "1.3.427" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz#ea43d02908a8c71f47ebb46e09de5a3cf8236f04" - integrity sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A== + version "1.3.432" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.432.tgz#3bf7b191978ff2e8bc3caf811bb52b1e9f9eab25" + integrity sha512-/GdNhXyLP5Yl2322CUX/+Xi8NhdHBqL6lD9VJVKjH6CjoPGakvwZ5CpKgj/oOlbzuWWjOvMjDw1bBuAIRCNTlw== elegant-spinner@^1.0.1: version "1.0.1" @@ -2257,9 +2257,9 @@ entities@^1.1.1, entities@~1.1.1: integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.2.tgz#ac74db0bba8d33808bbf36809c3a5c3683531436" + integrity sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw== equal-length@^1.0.0: version "1.0.1" @@ -2453,9 +2453,9 @@ esutils@^2.0.2: integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== execa@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.0.tgz#7f37d6ec17f09e6b8fc53288611695b6d12b9daf" - integrity sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.1.tgz#988488781f1f0238cd156f7aaede11c3e853b4c1" + integrity sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" @@ -2724,9 +2724,9 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" @@ -3406,10 +3406,10 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-promise@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-3.0.0.tgz#1f88031af842d9203dc1777cba40411e848f9beb" - integrity sha512-aTHJ4BvETyySzLhguH+7sL4b8765eecqq7ZrHVuhZr3FjCL/IV+LsvisEeH+9d0AkChYny3ad1KEL+mKy4ot7A== +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== is-scoped@^2.1.0: version "2.1.0" @@ -4261,9 +4261,9 @@ node-preload@^0.2.1: process-on-spawn "^1.0.0" node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + version "1.1.55" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee" + integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w== normalize-package-data@^2.5.0: version "2.5.0" @@ -4813,10 +4813,10 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -pretty-ms@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-6.0.1.tgz#03ec6cfee20329f142645e63efad96bb775d3da4" - integrity sha512-ke4njoVmlotekHlHyCZ3wI/c5AMT8peuHs8rKJqekj/oR5G8lND2dVpicFlUz5cbZgE290vvkMuDwfj/OcW1kw== +pretty-ms@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.0.tgz#45781273110caf35f55cab21a8a9bd403a233dc0" + integrity sha512-J3aPWiC5e9ZeZFuSeBraGxSkGMOvulSWsxDByOcbD1Pr75YL3LSNIKIb52WXbCLE1sS5s4inBBbryjF4Y05Ceg== dependencies: parse-ms "^2.1.0" @@ -5454,7 +5454,7 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -stack-utils@^2.0.1: +stack-utils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== @@ -5761,9 +5761,9 @@ trim-right@^1.0.1: integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.11.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9" + integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== tunnel-agent@^0.6.0: version "0.6.0"