diff --git a/dist/_30s.es5.js b/dist/_30s.es5.js index a55c6a330..d3d399521 100644 --- a/dist/_30s.es5.js +++ b/dist/_30s.es5.js @@ -1486,7 +1486,7 @@ }); var lastDigit = arr.splice(0, 1)[0]; var sum = arr.reduce(function (acc, val, i) { - return i % 2 !== 0 ? acc + val : acc + val * 2 % 9 || 9; + return i % 2 !== 0 ? acc + val : acc + (val * 2 > 9 ? val * 2 - 9 : val * 2); }, 0); sum += lastDigit; return sum % 10 === 0; diff --git a/dist/_30s.esm.js b/dist/_30s.esm.js index 363340f54..968a4dfa7 100644 --- a/dist/_30s.esm.js +++ b/dist/_30s.esm.js @@ -706,7 +706,7 @@ const luhnCheck = num => { .reverse() .map(x => parseInt(x)); let lastDigit = arr.splice(0, 1)[0]; - let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0); + let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2 > 9 ? val * 2 - 9 : val * 2)), 0); sum += lastDigit; return sum % 10 === 0; }; diff --git a/dist/_30s.js b/dist/_30s.js index 13413123f..e965d3881 100644 --- a/dist/_30s.js +++ b/dist/_30s.js @@ -712,7 +712,7 @@ .reverse() .map(x => parseInt(x)); let lastDigit = arr.splice(0, 1)[0]; - let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0); + let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2 > 9 ? val * 2 - 9 : val * 2)), 0); sum += lastDigit; return sum % 10 === 0; }; diff --git a/test/_30s.js b/test/_30s.js index 5b782cfc4..42f493e38 100644 --- a/test/_30s.js +++ b/test/_30s.js @@ -709,7 +709,7 @@ const luhnCheck = num => { .reverse() .map(x => parseInt(x)); let lastDigit = arr.splice(0, 1)[0]; - let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0); + let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2 > 9 ? val * 2 - 9 : val * 2)), 0); sum += lastDigit; return sum % 10 === 0; }; diff --git a/test/luhnCheck.test.js b/test/luhnCheck.test.js index 1b3bd4c7c..861bd1913 100644 --- a/test/luhnCheck.test.js +++ b/test/luhnCheck.test.js @@ -3,10 +3,16 @@ const {luhnCheck} = require('./_30s.js'); test('luhnCheck is a Function', () => { expect(luhnCheck).toBeInstanceOf(Function); }); -test('validates identification number', () => { - expect(luhnCheck(6011329933655299)).toBeFalsy(); +test('invalidates an incorrect identification number', () => { + expect(luhnCheck(6011329933655298)).toBeFalsy(); }); -test('validates identification number', () => { +test('validates a correct identification number', () => { + expect(luhnCheck(6011329933655299)).toBeTruthy(); +}); +test('validates a correct identification number', () => { + expect(luhnCheck(5105105105105100)).toBeTruthy(); +}); +test('validates a correct identification number', () => { expect(luhnCheck('4485275742308327')).toBeTruthy(); }); test('validates identification number', () => {