diff --git a/package-lock.json b/package-lock.json index 76200e8b7f..1597f0585b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6885,9 +6885,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "lodash.flattendeep": { @@ -10725,12 +10725,6 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, - "underscore": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz", - "integrity": "sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==", - "dev": true - }, "undertaker": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", diff --git a/package.json b/package.json index a864603245..172a31c0e6 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "karma-mocha": "2.0.1", "karma-mocha-reporter": "2.2.5", "karma-webpack": "4.0.2", + "lodash": "4.17.20", "math-expression-evaluator": "1.2.22", "mkdirp": "1.0.4", "mocha": "8.1.3", @@ -71,7 +72,6 @@ "standard": "14.3.4", "sylvester": "0.0.21", "uglify-js": "3.10.3", - "underscore": "1.11.0", "webpack": "4.44.1", "zeros": "1.0.0" }, diff --git a/test/unit-tests/function/probability/multinomial.test.js b/test/unit-tests/function/probability/multinomial.test.js index ce6c00b11a..ff9fbfb015 100644 --- a/test/unit-tests/function/probability/multinomial.test.js +++ b/test/unit-tests/function/probability/multinomial.test.js @@ -1,6 +1,7 @@ import assert from 'assert' +import { isEqual } from 'lodash' import math from '../../../../src/bundleAny' -import _ from 'underscore' + const multinomial = math.multinomial describe('multinomial', function () { @@ -11,7 +12,7 @@ describe('multinomial', function () { }) it('should calculate the multinomial of n items taken k at a time with BigNumbers', function () { - assert.strictEqual(_.isEqual(multinomial([math.bignumber(3), math.bignumber(4), math.bignumber(5)]), math.bignumber(27720)), true) + assert.strictEqual(isEqual(multinomial([math.bignumber(3), math.bignumber(4), math.bignumber(5)]), math.bignumber(27720)), true) assert.deepStrictEqual(multinomial([math.bignumber(10), math.bignumber(1), math.bignumber(2)]), math.bignumber(858)) }) diff --git a/test/unit-tests/function/probability/pickRandom.test.js b/test/unit-tests/function/probability/pickRandom.test.js index fe68a1df48..fc0cbdd0c8 100644 --- a/test/unit-tests/function/probability/pickRandom.test.js +++ b/test/unit-tests/function/probability/pickRandom.test.js @@ -1,6 +1,6 @@ import assert from 'assert' +import { filter, times } from 'lodash' import math from '../../../../src/bundleAny' -import _ from 'underscore' const math2 = math.create({ randomSeed: 'test2' }) const pickRandom = math2.pickRandom @@ -122,23 +122,23 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push(pickRandom(possibles)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) }) @@ -147,23 +147,23 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push(pickRandom(possibles)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) }) @@ -173,25 +173,25 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push.apply(picked, pickRandom(possibles, number)) }) assert.strictEqual(picked.length, 2000) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) }) @@ -201,25 +201,25 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push.apply(picked, pickRandom(possibles, number)) }) assert.strictEqual(picked.length, 3000) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) }) @@ -229,23 +229,23 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push(pickRandom(possibles, weights)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.1) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round((count) / picked.length, 1), 0.4) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.3) }) @@ -255,23 +255,23 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push(pickRandom(possibles, weights)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.1) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round((count) / picked.length, 1), 0.4) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.3) }) @@ -282,42 +282,42 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push.apply(picked, pickRandom(possibles, number, weights)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.1) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round((count) / picked.length, 1), 0.4) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.3) - _.times(1000, function () { + times(1000, function () { picked.push.apply(picked, pickRandom(possibles, weights, number)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.1) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round((count) / picked.length, 1), 0.4) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.3) }) @@ -328,42 +328,42 @@ describe('pickRandom', function () { const picked = [] let count - _.times(1000, function () { + times(1000, function () { picked.push.apply(picked, pickRandom(possibles, number, weights)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.1) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round((count) / picked.length, 1), 0.4) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.3) - _.times(1000, function () { + times(1000, function () { picked.push.apply(picked, pickRandom(possibles, weights, number)) }) - count = _.filter(picked, function (val) { return val === 11 }).length + count = filter(picked, function (val) { return val === 11 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.1) - count = _.filter(picked, function (val) { return val === 22 }).length + count = filter(picked, function (val) { return val === 22 }).length assert.strictEqual(math.round((count) / picked.length, 1), 0.4) - count = _.filter(picked, function (val) { return val === 33 }).length + count = filter(picked, function (val) { return val === 33 }).length assert.strictEqual(math.round(count / picked.length, 1), 0) - count = _.filter(picked, function (val) { return val === 44 }).length + count = filter(picked, function (val) { return val === 44 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.2) - count = _.filter(picked, function (val) { return val === 55 }).length + count = filter(picked, function (val) { return val === 55 }).length assert.strictEqual(math.round(count / picked.length, 1), 0.3) }) diff --git a/test/unit-tests/function/probability/random.test.js b/test/unit-tests/function/probability/random.test.js index eedbfd81d4..bd153283da 100644 --- a/test/unit-tests/function/probability/random.test.js +++ b/test/unit-tests/function/probability/random.test.js @@ -1,6 +1,6 @@ import assert from 'assert' +import { filter, times } from 'lodash' import math from '../../../../src/bundleAny' -import _ from 'underscore' const math2 = math.create({ randomSeed: 'test' }) const random = math2.random @@ -14,7 +14,7 @@ describe('random', function () { it('should pick uniformly distributed numbers in [0, 1]', function () { const picked = [] - _.times(1000, function () { + times(1000, function () { picked.push(random()) }) assertUniformDistribution(picked, 0, 1) @@ -23,7 +23,7 @@ describe('random', function () { it('should pick uniformly distributed numbers in [min, max]', function () { const picked = [] - _.times(1000, function () { + times(1000, function () { picked.push(random(-10, 10)) }) assertUniformDistribution(picked, -10, 10) @@ -34,7 +34,7 @@ describe('random', function () { const matrices = [] const size = [2, 3, 4] - _.times(100, function () { + times(100, function () { matrices.push(random(size)) }) @@ -56,7 +56,7 @@ describe('random', function () { const matrices = [] const size = [2, 3, 4] - _.times(100, function () { + times(100, function () { matrices.push(random(size, 8)) }) @@ -78,7 +78,7 @@ describe('random', function () { const matrices = [] const size = math2.matrix([2, 3, 4]) - _.times(100, function () { + times(100, function () { matrices.push(random(size)) }) @@ -100,7 +100,7 @@ describe('random', function () { const matrices = [] const size = [2, 3, 4] - _.times(100, function () { + times(100, function () { matrices.push(random(size, -103, 8)) }) @@ -137,13 +137,13 @@ function assertUniformDistribution (values, min, max) { const interval = (max - min) / 10 let count let i - count = _.filter(values, function (val) { return val < min }).length + count = filter(values, function (val) { return val < min }).length assert.strictEqual(count, 0) - count = _.filter(values, function (val) { return val > max }).length + count = filter(values, function (val) { return val > max }).length assert.strictEqual(count, 0) for (i = 0; i < 10; i++) { - count = _.filter(values, function (val) { + count = filter(values, function (val) { return val >= (min + i * interval) && val < (min + (i + 1) * interval) }).length assertApproxEqual(count / values.length, 0.1, 0.02) diff --git a/test/unit-tests/function/probability/randomInt.test.js b/test/unit-tests/function/probability/randomInt.test.js index 052783c1dc..acd3c89479 100644 --- a/test/unit-tests/function/probability/randomInt.test.js +++ b/test/unit-tests/function/probability/randomInt.test.js @@ -1,6 +1,6 @@ import assert from 'assert' +import { filter, includes, range, times } from 'lodash' import math from '../../../../src/bundleAny' -import _ from 'underscore' const math2 = math.create({ randomSeed: 'test' }) const randomInt = math2.randomInt @@ -13,7 +13,7 @@ describe('randomInt', function () { it('should pick uniformly distributed integers in [min, max)', function () { const picked = [] - _.times(10000, function () { + times(10000, function () { picked.push(randomInt(-15, -5)) }) @@ -25,7 +25,7 @@ describe('randomInt', function () { const matrices = [] const size = [2, 3, 4] - _.times(1000, function () { + times(1000, function () { matrices.push(randomInt(size, -14.9, -2)) }) @@ -61,16 +61,16 @@ describe('randomInt', function () { }) const assertUniformDistributionInt = function (values, min, max) { - const range = _.range(Math.floor(min), Math.floor(max)) + const valuesRange = range(Math.floor(min), Math.floor(max)) let count values.forEach(function (val) { - assert.ok(_.contains(range, val)) + assert.ok(includes(valuesRange, val)) }) - range.forEach(function (val) { - count = _.filter(values, function (testVal) { return testVal === val }).length - assertApproxEqual(count / values.length, 1 / range.length, 0.03) + valuesRange.forEach(function (val) { + count = filter(values, function (testVal) { return testVal === val }).length + assertApproxEqual(count / values.length, 1 / valuesRange.length, 0.03) }) }