From 9f24341b5b3f771fc5b36441da93dd61f041cb18 Mon Sep 17 00:00:00 2001 From: Thivagar Manickam Date: Thu, 6 May 2021 21:08:47 +0530 Subject: [PATCH 1/3] Added test script for CreatePermutations and file name change --- ...createPurmutations.js => CreatePermutations.js} | 3 +-- String/test/CreatePermutations.test.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) rename String/{createPurmutations.js => CreatePermutations.js} (91%) create mode 100644 String/test/CreatePermutations.test.js diff --git a/String/createPurmutations.js b/String/CreatePermutations.js similarity index 91% rename from String/createPurmutations.js rename to String/CreatePermutations.js index 1b3cbb06a0..6e5344f742 100644 --- a/String/createPurmutations.js +++ b/String/CreatePermutations.js @@ -33,5 +33,4 @@ const createPermutations = (str) => { } return perms } - -console.log(createPermutations('abc')) // should print ["abc", "acb", "bac", "bca", "cab", "cba"] +export { createPermutations } diff --git a/String/test/CreatePermutations.test.js b/String/test/CreatePermutations.test.js new file mode 100644 index 0000000000..5bb82848c0 --- /dev/null +++ b/String/test/CreatePermutations.test.js @@ -0,0 +1,14 @@ +import { createPermutations } from '../CreatePermutations' + +describe('createPermutations', () => { + it('expects to generate 6 different combinations', () => { + const text = 'abc' + const SUT = createPermutations(text) + expect(SUT).toStrictEqual(['abc', 'acb', 'bac', 'bca', 'cab', 'cba']) + }) + it('expects to generate 2 different combinations', () => { + const text = '12' + const SUT = createPermutations(text) + expect(SUT).toStrictEqual(['12', '21']) + }) +}) From 1ce4168664768c2312df15861c780670c70d2318 Mon Sep 17 00:00:00 2001 From: Thivagar Manickam Date: Thu, 6 May 2021 21:28:40 +0530 Subject: [PATCH 2/3] Project euler problem 10 solution and test script --- Project-Euler/Problem10.js | 22 ++++++++++++++++++++++ Project-Euler/test/Problem10.test.js | 16 ++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Project-Euler/Problem10.js create mode 100644 Project-Euler/test/Problem10.test.js diff --git a/Project-Euler/Problem10.js b/Project-Euler/Problem10.js new file mode 100644 index 0000000000..0e0e0ef5b6 --- /dev/null +++ b/Project-Euler/Problem10.js @@ -0,0 +1,22 @@ +// https://projecteuler.net/problem=10 + +const isPrime = (number) => { + let flag = true + for (let j = number - 1; j >= 2; j--) { + if (number % j === 0) { + flag = false + } + } + return flag +} + +const calculateSumOfPrimeNumbers = (maxNumber) => { + let sum = 0 + for (let i = maxNumber - 1; i >= 2; i--) { + if (isPrime(i) === true) { + sum += i + } + } + return sum +} +export { calculateSumOfPrimeNumbers } diff --git a/Project-Euler/test/Problem10.test.js b/Project-Euler/test/Problem10.test.js new file mode 100644 index 0000000000..2c1545cd10 --- /dev/null +++ b/Project-Euler/test/Problem10.test.js @@ -0,0 +1,16 @@ +import { calculateSumOfPrimeNumbers } from '../Problem10' + +describe('checkAnagram', () => { + it('Return the sum of prime numbers upto but less than 14', () => { + const SUT = calculateSumOfPrimeNumbers(14) + expect(SUT).toBe(41) + }) + it('Return the sum of prime numbers upto but less than 10', () => { + const SUT = calculateSumOfPrimeNumbers(10) + expect(SUT).toBe(17) + }) + it('Return the sum of prime numbers upto but less than 100', () => { + const SUT = calculateSumOfPrimeNumbers(100) + expect(SUT).toBe(1060) + }) +}) From 311c86a1cf85cfefe9a23794eb4879ba8c2dec69 Mon Sep 17 00:00:00 2001 From: Thivagar Manickam Date: Sat, 8 May 2021 10:37:35 +0530 Subject: [PATCH 3/3] Updated the problem10 solution --- Project-Euler/Problem10.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Project-Euler/Problem10.js b/Project-Euler/Problem10.js index 0e0e0ef5b6..9d90ee5c3f 100644 --- a/Project-Euler/Problem10.js +++ b/Project-Euler/Problem10.js @@ -1,19 +1,21 @@ // https://projecteuler.net/problem=10 const isPrime = (number) => { - let flag = true - for (let j = number - 1; j >= 2; j--) { + if (number === 2) return true + if (number % 2 === 0) return false + + for (let j = 3; j * j <= number; j += 2) { if (number % j === 0) { - flag = false + return false } } - return flag + return true } const calculateSumOfPrimeNumbers = (maxNumber) => { let sum = 0 for (let i = maxNumber - 1; i >= 2; i--) { - if (isPrime(i) === true) { + if (isPrime(parseInt(i)) === true) { sum += i } }