From 8ef44790b61813cd30e7e8263a0c6dccd2747dd0 Mon Sep 17 00:00:00 2001 From: Japoncio3k Date: Sun, 30 Oct 2022 11:44:36 -0300 Subject: [PATCH 1/3] Added pyramid --- Geometry/Pyramid.js | 25 +++++++++++++++++++++++++ Geometry/Test/Pyramid.test.js | 11 +++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Geometry/Pyramid.js create mode 100644 Geometry/Test/Pyramid.test.js diff --git a/Geometry/Pyramid.js b/Geometry/Pyramid.js new file mode 100644 index 0000000000..0cf4a7da93 --- /dev/null +++ b/Geometry/Pyramid.js @@ -0,0 +1,25 @@ +/** + * This class represents a regular pyramid and can calculate its volume and surface area + * https://en.wikipedia.org/wiki/Pyramid_(geometry) + * @constructor + * @param {number} bsl - The side length of the base of the pyramid. + * @param {number} height - The height of the pyramid + */ +export default class Cone { + constructor (bsl, height) { + this.bsl = bsl + this.height = height + } + + baseArea = () => { + return Math.pow(this.bsl, 2) + } + + volume = () => { + return this.baseArea() * this.height * 1 / 3 + } + + surfaceArea = () => { + return this.baseArea() + this.bsl * 4 * 1 / 2 * Math.sqrt(Math.pow(this.bsl / 2, 2) + Math.pow(this.height, 2)) + } +} diff --git a/Geometry/Test/Pyramid.test.js b/Geometry/Test/Pyramid.test.js new file mode 100644 index 0000000000..a6d2b16d1a --- /dev/null +++ b/Geometry/Test/Pyramid.test.js @@ -0,0 +1,11 @@ +import Pyramid from '../Pyramid' + +const pyramid = new Pyramid(3, 5) + +test('The Volume of a cone with base radius equal to 3 and height equal to 5', () => { + expect(parseFloat(pyramid.volume().toFixed(2))).toEqual(15) +}) + +test('The Surface Area of a cone with base radius equal to 3 and height equal to 5', () => { + expect(parseFloat(pyramid.surfaceArea().toFixed(2))).toEqual(40.32) +}) From 5eed9a9571b6f8f6bfbad839bec4119ee724a79e Mon Sep 17 00:00:00 2001 From: Japoncio3k Date: Sun, 30 Oct 2022 12:21:13 -0300 Subject: [PATCH 2/3] Removed * 1 --- Geometry/Pyramid.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Geometry/Pyramid.js b/Geometry/Pyramid.js index 0cf4a7da93..4359e1d9ce 100644 --- a/Geometry/Pyramid.js +++ b/Geometry/Pyramid.js @@ -16,10 +16,10 @@ export default class Cone { } volume = () => { - return this.baseArea() * this.height * 1 / 3 + return this.baseArea() * this.height / 3 } surfaceArea = () => { - return this.baseArea() + this.bsl * 4 * 1 / 2 * Math.sqrt(Math.pow(this.bsl / 2, 2) + Math.pow(this.height, 2)) + return this.baseArea() + this.bsl * 4 / 2 * Math.sqrt(Math.pow(this.bsl / 2, 2) + Math.pow(this.height, 2)) } } From e423087b80d83b716424eac1a534c8721a8be579 Mon Sep 17 00:00:00 2001 From: Gustavo Kamihara <49957327+Japoncio3k@users.noreply.github.com> Date: Sun, 30 Oct 2022 12:27:35 -0300 Subject: [PATCH 3/3] Change class name --- Geometry/Pyramid.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Geometry/Pyramid.js b/Geometry/Pyramid.js index 4359e1d9ce..759b7376e1 100644 --- a/Geometry/Pyramid.js +++ b/Geometry/Pyramid.js @@ -5,7 +5,7 @@ * @param {number} bsl - The side length of the base of the pyramid. * @param {number} height - The height of the pyramid */ -export default class Cone { +export default class Pyramid { constructor (bsl, height) { this.bsl = bsl this.height = height