facty
Version:
Integer Factorization Approaches with JavaScript
64 lines (60 loc) • 1.47 kB
JavaScript
const { expect } = require('chai');
const { factorize } = require('../src');
const { trimin } = require('../src/utils/string');
const factorizators = ['fermat', 'pollard-rho'];
const primalityTesters = ['fermat', 'aks'];
const gcdCalculators = ['prime'];
const numbers = [
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
];
describe('Testing: Prime Factorization', () => {
factorizators.forEach(factorizator => {
primalityTesters.forEach(primalityTester => {
gcdCalculators.forEach(gcdCalculator => {
describe(trimin(`
··· Factorizator: ${factorizator}
··· Primarity Tester: ${primalityTester}
··· GCD Calculator: ${gcdCalculator}
`), () => {
numbers.forEach(([number, ...factors]) => {
it(`should factorize ${number} as ${factors.toString()}`, () => {
expect(factorize(number, {
factorizator,
primalityTester,
gcdCalculator,
})).to.deep.equal(factors);
});
});
});
});
});
});
});