From dd0a26defa773b5746452f025e83597f866e121d Mon Sep 17 00:00:00 2001 From: Rajat Garg Date: Sat, 8 Oct 2022 13:34:00 +0530 Subject: [PATCH 1/3] Added perfect square --- Maths/PerfectSquare.ts | 19 +++++++++++++++++++ Maths/test/PerfectSquare.test.ts | 17 +++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Maths/PerfectSquare.ts create mode 100644 Maths/test/PerfectSquare.test.ts diff --git a/Maths/PerfectSquare.ts b/Maths/PerfectSquare.ts new file mode 100644 index 00000000..74aa28f4 --- /dev/null +++ b/Maths/PerfectSquare.ts @@ -0,0 +1,19 @@ +/** + * @function perfectSquare + * @description the square root of a number should be an integer + * @see [Perfect square](https://www.cuemath.com/algebra/perfect-squares/) + * @example Perfect square - 9, 16, 25 + */ + + +/** + * @param {num} number + */ + + export const PerfectSquare = (num : number) => { + + let squareRoot:number = Math.sqrt(num) + + return Number.isInteger(squareRoot) +} + diff --git a/Maths/test/PerfectSquare.test.ts b/Maths/test/PerfectSquare.test.ts new file mode 100644 index 00000000..0a2cc4f0 --- /dev/null +++ b/Maths/test/PerfectSquare.test.ts @@ -0,0 +1,17 @@ +import { PerfectSquare } from "../PerfectSquare"; + +/** + * Test #1 - 16 expected - true actual - true + * Test #2 - 12 expected - false actual - false + */ + +describe("Perfect square", () => { + it("pass the test#1", () => { + expect(PerfectSquare(16)).toBe(true); + }) + + it("pass the test#2", () => { + expect(PerfectSquare(12)).toBe(false); + }) + +}); \ No newline at end of file From c27baa6974014752728c37fd145d713d9799a745 Mon Sep 17 00:00:00 2001 From: Rajat Garg Date: Sat, 8 Oct 2022 14:38:30 +0530 Subject: [PATCH 2/3] Refactored code --- Maths/PerfectSquare.ts | 16 ++++------------ Maths/test/PerfectSquare.test.ts | 22 ++++++++-------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/Maths/PerfectSquare.ts b/Maths/PerfectSquare.ts index 74aa28f4..d66d4a90 100644 --- a/Maths/PerfectSquare.ts +++ b/Maths/PerfectSquare.ts @@ -3,17 +3,9 @@ * @description the square root of a number should be an integer * @see [Perfect square](https://www.cuemath.com/algebra/perfect-squares/) * @example Perfect square - 9, 16, 25 + * @param {num} number */ - -/** - * @param {num} number - */ - - export const PerfectSquare = (num : number) => { - - let squareRoot:number = Math.sqrt(num) - - return Number.isInteger(squareRoot) -} - +export const PerfectSquare = (num: number) => { + return Number.isInteger(Math.sqrt(num)); +}; diff --git a/Maths/test/PerfectSquare.test.ts b/Maths/test/PerfectSquare.test.ts index 0a2cc4f0..de4b7b1a 100644 --- a/Maths/test/PerfectSquare.test.ts +++ b/Maths/test/PerfectSquare.test.ts @@ -1,17 +1,11 @@ import { PerfectSquare } from "../PerfectSquare"; -/** - * Test #1 - 16 expected - true actual - true - * Test #2 - 12 expected - false actual - false - */ - describe("Perfect square", () => { - it("pass the test#1", () => { - expect(PerfectSquare(16)).toBe(true); - }) - - it("pass the test#2", () => { - expect(PerfectSquare(12)).toBe(false); - }) - -}); \ No newline at end of file + it("pass the test#1", () => { + expect(PerfectSquare(16)).toBe(true); + }); + + it("pass the test#2", () => { + expect(PerfectSquare(12)).toBe(false); + }); +}); From 93e79e452b410afe8824fefb26d788b324fbe4b2 Mon Sep 17 00:00:00 2001 From: Rajat Garg Date: Sat, 8 Oct 2022 15:19:31 +0530 Subject: [PATCH 3/3] Refactor code --- Maths/test/PerfectSquare.test.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Maths/test/PerfectSquare.test.ts b/Maths/test/PerfectSquare.test.ts index de4b7b1a..b11ddedd 100644 --- a/Maths/test/PerfectSquare.test.ts +++ b/Maths/test/PerfectSquare.test.ts @@ -1,11 +1,9 @@ import { PerfectSquare } from "../PerfectSquare"; -describe("Perfect square", () => { - it("pass the test#1", () => { +test("Check perfect square", () => { expect(PerfectSquare(16)).toBe(true); - }); - - it("pass the test#2", () => { expect(PerfectSquare(12)).toBe(false); - }); + expect(PerfectSquare(19)).toBe(false); + expect(PerfectSquare(25)).toBe(true); + expect(PerfectSquare(42)).toBe(false); });