From 8f48b87f7cd460ad3a0ff14d0ae064034af02a05 Mon Sep 17 00:00:00 2001 From: Japoncio3k Date: Sun, 30 Oct 2022 03:06:47 -0300 Subject: [PATCH 1/4] Added circle perimeter --- Geometry/CirclePerimeter.js | 7 +++++++ Geometry/Test/CirclePerimeter.test.js | 8 ++++++++ 2 files changed, 15 insertions(+) create mode 100644 Geometry/CirclePerimeter.js create mode 100644 Geometry/Test/CirclePerimeter.test.js diff --git a/Geometry/CirclePerimeter.js b/Geometry/CirclePerimeter.js new file mode 100644 index 0000000000..f736c4617c --- /dev/null +++ b/Geometry/CirclePerimeter.js @@ -0,0 +1,7 @@ +// https://en.wikipedia.org/wiki/Circle rounds to 2 decimal places +const circlePerimeter = (radius) => { + const perimeter = radius * 2 * Math.PI + return parseFloat(perimeter.toFixed(2)) +} + +export { circlePerimeter } diff --git a/Geometry/Test/CirclePerimeter.test.js b/Geometry/Test/CirclePerimeter.test.js new file mode 100644 index 0000000000..29deb95e36 --- /dev/null +++ b/Geometry/Test/CirclePerimeter.test.js @@ -0,0 +1,8 @@ +import { circlePerimeter } from '../CirclePerimeter' + +describe('CirclePerimeter', () => { + it('should return circle perimeter given the radius', () => { + const res = circlePerimeter(3) + expect(res).toEqual(18.85) + }) +}) From 1a5a0357f5c53ec93c86fa1dac3b46ba4c1eebb0 Mon Sep 17 00:00:00 2001 From: Japoncio3k Date: Sun, 30 Oct 2022 10:47:20 -0300 Subject: [PATCH 2/4] Created circle class and added circle area --- Geometry/Circle.js | 18 ++++++++++++++++++ Geometry/CirclePerimeter.js | 7 ------- Geometry/Test/Circle.test.js | 13 +++++++++++++ Geometry/Test/CirclePerimeter.test.js | 8 -------- 4 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 Geometry/Circle.js delete mode 100644 Geometry/CirclePerimeter.js create mode 100644 Geometry/Test/Circle.test.js delete mode 100644 Geometry/Test/CirclePerimeter.test.js diff --git a/Geometry/Circle.js b/Geometry/Circle.js new file mode 100644 index 0000000000..7a040c90e2 --- /dev/null +++ b/Geometry/Circle.js @@ -0,0 +1,18 @@ +/** + * This class represents a circle and can calculate it's perimeter and area + * @constructor + * @param {number} radius - The radius of the circule. + */ +export default class Circle { + constructor (radius) { + this.radius = radius + } + + perimeter = () => { + return this.radius * 2 * Math.PI + } + + area = () => { + return Math.pow(this.radius, 2) * Math.PI + } +} diff --git a/Geometry/CirclePerimeter.js b/Geometry/CirclePerimeter.js deleted file mode 100644 index f736c4617c..0000000000 --- a/Geometry/CirclePerimeter.js +++ /dev/null @@ -1,7 +0,0 @@ -// https://en.wikipedia.org/wiki/Circle rounds to 2 decimal places -const circlePerimeter = (radius) => { - const perimeter = radius * 2 * Math.PI - return parseFloat(perimeter.toFixed(2)) -} - -export { circlePerimeter } diff --git a/Geometry/Test/Circle.test.js b/Geometry/Test/Circle.test.js new file mode 100644 index 0000000000..6d55c45dc8 --- /dev/null +++ b/Geometry/Test/Circle.test.js @@ -0,0 +1,13 @@ +import Circle from '../Circle' + +const circle = new Circle(3) + +test('The area of a circle with radius equal to 3', () => { + const area = circle.area().toFixed(2) + expect(parseFloat(area)).toEqual(28.27) +}) + +test('The perimeter of a circle with radius equal to 3', () => { + const perimeter = circle.perimeter().toFixed(2) + expect(parseFloat(perimeter)).toEqual(18.85) +}) diff --git a/Geometry/Test/CirclePerimeter.test.js b/Geometry/Test/CirclePerimeter.test.js deleted file mode 100644 index 29deb95e36..0000000000 --- a/Geometry/Test/CirclePerimeter.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import { circlePerimeter } from '../CirclePerimeter' - -describe('CirclePerimeter', () => { - it('should return circle perimeter given the radius', () => { - const res = circlePerimeter(3) - expect(res).toEqual(18.85) - }) -}) From c901e269ecfcba6de888052f865336cacab8a6a7 Mon Sep 17 00:00:00 2001 From: Japoncio3k Date: Sun, 30 Oct 2022 10:48:42 -0300 Subject: [PATCH 3/4] Added wikipedia link --- Geometry/Circle.js | 1 + 1 file changed, 1 insertion(+) diff --git a/Geometry/Circle.js b/Geometry/Circle.js index 7a040c90e2..4b4f8e3b9a 100644 --- a/Geometry/Circle.js +++ b/Geometry/Circle.js @@ -1,5 +1,6 @@ /** * This class represents a circle and can calculate it's perimeter and area + * https://en.wikipedia.org/wiki/Circle * @constructor * @param {number} radius - The radius of the circule. */ From 3097951da199ede4f13b15f3d1a3dbb583b4c137 Mon Sep 17 00:00:00 2001 From: Gustavo Kamihara <49957327+Japoncio3k@users.noreply.github.com> Date: Sun, 30 Oct 2022 11:16:07 -0300 Subject: [PATCH 4/4] Update Circle.test.js --- Geometry/Test/Circle.test.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Geometry/Test/Circle.test.js b/Geometry/Test/Circle.test.js index 6d55c45dc8..b2332df43d 100644 --- a/Geometry/Test/Circle.test.js +++ b/Geometry/Test/Circle.test.js @@ -3,11 +3,9 @@ import Circle from '../Circle' const circle = new Circle(3) test('The area of a circle with radius equal to 3', () => { - const area = circle.area().toFixed(2) - expect(parseFloat(area)).toEqual(28.27) + expect(parseFloat(circle.area().toFixed(2))).toEqual(28.27) }) test('The perimeter of a circle with radius equal to 3', () => { - const perimeter = circle.perimeter().toFixed(2) - expect(parseFloat(perimeter)).toEqual(18.85) + expect(parseFloat(circle.perimeter().toFixed(2))).toEqual(18.85) })