From 85b7d8392ff3a9d65e731b0b06063b570abc9ca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Ooms?= Date: Mon, 11 May 2020 12:06:06 +0200 Subject: [PATCH 1/4] :bug: fix(mul): Respect @aureooms/js-integer-big-endian limits on base. --- src/_limits.js | 2 +- test/src/integer/bugs/mul.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/src/integer/bugs/mul.js diff --git a/src/_limits.js b/src/_limits.js index c915aba..c161c85 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(MAX_NUMBER+1)) | 0; +export const MAX_BASE = Math.floor(Math.sqrt(MAX_NUMBER+1)) | 0; diff --git a/test/src/integer/bugs/mul.js b/test/src/integer/bugs/mul.js new file mode 100644 index 0000000..da95435 --- /dev/null +++ b/test/src/integer/bugs/mul.js @@ -0,0 +1,12 @@ +import test from 'ava' ; + +import { parse , stringify , mul } from '../../../../src' ; + +test ( 'mul handles overflow' , t => { + const X = '81129639699425365877808850315535' ; + const expected = '6582018437758576371414942707515558118625242782831331069062336225' + const x = parse( X ) ; + const r = mul( x , x ) ; + t.is( X , stringify( x ) ) ; + t.is( expected , stringify( r ) ) ; +} ) From 0badd484cf3f6691973bc5966f1f3bba38b2dd01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Ooms?= Date: Mon, 11 May 2020 12:07:19 +0200 Subject: [PATCH 2/4] :unamused: chore(deps): Upgrade. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0c776dd..880fa77 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "@aureooms/js-error": "^4.0.0", - "@aureooms/js-integer-big-endian": "^9.0.0" + "@aureooms/js-integer-big-endian": "^9.0.2" }, "devDependencies": { "@aureooms/js-algorithms": "3.0.7", From 0a2c17a9a7bc851d8140d56e40f1af60dc105f8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Ooms?= Date: Mon, 11 May 2020 12:15:14 +0200 Subject: [PATCH 3/4] :unamused: chore(deps): Lock. --- yarn.lock | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 20bb8a6..1e4ff13 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@^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-integer-big-endian@^9.0.2": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@aureooms/js-integer-big-endian/-/js-integer-big-endian-9.0.2.tgz#4747d9d1586d66d11ec21c2cd3d81a68680e0717" + integrity sha512-9rlrO1UaJ6X5CxK1YxIf74u2XWbh5TX0XA9lx5RIu8HgCrhQDO3PKhZl6oOSSsY2/s8SWd4/RAd4IigziPvYng== "@aureooms/js-itertools@4.0.0": version "4.0.0" @@ -306,7 +306,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": +"@babel/parser@^7.8.6", "@babel/parser@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== @@ -795,7 +795,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -804,7 +804,7 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": +"@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== @@ -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.30001054" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001054.tgz#7e82fc42d927980b0ce1426c4813df12381e1a75" - integrity sha512-jiKlTI6Ur8Kjfj8z0muGrV6FscpRvefcQVPSuMuXnvRCfExU7zlVLNjmOz1TnurWgUrAY7MMmjyy+uTgIl1XHw== + version "1.0.30001055" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz#7b52c3537f7a8c0408aca867e83d2b04268b54cd" + integrity sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw== caseless@~0.12.0: version "0.12.0" @@ -3512,14 +3512,11 @@ istanbul-lib-hook@^3.0.0: append-transform "^2.0.0" istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" "@istanbuljs/schema" "^0.1.2" istanbul-lib-coverage "^3.0.0" semver "^6.3.0" @@ -5199,9 +5196,9 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.5.4: tslib "^1.9.0" safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" From ef4c1f3e70822803643e136aebbf9d02ab35e04c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Ooms?= Date: Mon, 11 May 2020 12:20:41 +0200 Subject: [PATCH 4/4] v8.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 880fa77..0a4049c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@aureooms/js-integer", "description": "Integers for JavaScript", - "version": "7.0.0", + "version": "8.0.0", "author": "Aurélien Ooms ", "ava": { "require": [