From 687b505a761f112ba7be7457eae8d5af43f28221 Mon Sep 17 00:00:00 2001 From: Prashal Ruchiranga Date: Tue, 11 Oct 2022 07:57:33 +0530 Subject: [PATCH 1/6] Add an algorithm to find mean absolute deviation --- Maths/MeanAbsoluteDeviation.js | 19 +++++++++++++++++++ Maths/test/MeanAbsoluteDeviation.test.js | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 Maths/MeanAbsoluteDeviation.js create mode 100644 Maths/test/MeanAbsoluteDeviation.test.js diff --git a/Maths/MeanAbsoluteDeviation.js b/Maths/MeanAbsoluteDeviation.js new file mode 100644 index 0000000000..d212f11548 --- /dev/null +++ b/Maths/MeanAbsoluteDeviation.js @@ -0,0 +1,19 @@ +import { mean } from "./AverageMean.js" +/** + *@function meanAbsoluteDeviation + *@description Calculates the mean absolute deviation of list of numbers + * @param {Integer} data + * @returns meanAbsoluteDeviation([2,34,5,0,-2]) = 10.480 + * @url https://en.wikipedia.org/wiki/Average_absolute_deviation + */ +function meanAbsoluteDeviation (data) { + if (!Array.isArray(data)) { + throw new TypeError('Invalid Input') + } + let absoluteSum = 0 + let meanValue = mean(data) + for (const dataPoint of data) { + absoluteSum += Math.abs(dataPoint - meanValue) + } + return (absoluteSum / data.length).toFixed(3) +} diff --git a/Maths/test/MeanAbsoluteDeviation.test.js b/Maths/test/MeanAbsoluteDeviation.test.js new file mode 100644 index 0000000000..f79430a90d --- /dev/null +++ b/Maths/test/MeanAbsoluteDeviation.test.js @@ -0,0 +1,16 @@ +import {meanAbsoluteDeviation} from '../MeanAbsoluteDeviation.js' + +describe('tests for mean absolute deviation', () => { + it('should be a function', () => { + expect(typeof meanAbsoluteDeviation).toEqual('function') + }) + + it('should throw an invalid input error', () => { + expect(() => meanAbsoluteDeviation('fgh')).toThrow() + }) + + it('should return the mean absolute devition of an array of numbers', () => { + const meanAbDev = meanAbsoluteDeviation([2,34,5,0,-2]) + expect(meanAbDev).toBe(10.480) + }) +}) From e98a2f690e71238025ac4a1c95c5c951c3b73ccb Mon Sep 17 00:00:00 2001 From: Prashal Ruchiranga Date: Tue, 11 Oct 2022 08:09:30 +0530 Subject: [PATCH 2/6] Update MeanAbsoluteDeviation.js --- Maths/MeanAbsoluteDeviation.js | 4 ++++ Maths/test/MeanAbsoluteDeviation.test.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/Maths/MeanAbsoluteDeviation.js b/Maths/MeanAbsoluteDeviation.js index d212f11548..4f9ea0704d 100644 --- a/Maths/MeanAbsoluteDeviation.js +++ b/Maths/MeanAbsoluteDeviation.js @@ -17,3 +17,7 @@ function meanAbsoluteDeviation (data) { } return (absoluteSum / data.length).toFixed(3) } + +export { + meanAbsoluteDeviation +} diff --git a/Maths/test/MeanAbsoluteDeviation.test.js b/Maths/test/MeanAbsoluteDeviation.test.js index f79430a90d..7ad210ad56 100644 --- a/Maths/test/MeanAbsoluteDeviation.test.js +++ b/Maths/test/MeanAbsoluteDeviation.test.js @@ -14,3 +14,5 @@ describe('tests for mean absolute deviation', () => { expect(meanAbDev).toBe(10.480) }) }) + +console.log(typeof meanAbsoluteDeviation) \ No newline at end of file From d5329c4c436ef2c4d9cdd601ba08ac5512e1b3b2 Mon Sep 17 00:00:00 2001 From: Prashal Ruchiranga Date: Tue, 11 Oct 2022 08:15:04 +0530 Subject: [PATCH 3/6] Update MeanAbsoluteDeviation.js --- Maths/MeanAbsoluteDeviation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Maths/MeanAbsoluteDeviation.js b/Maths/MeanAbsoluteDeviation.js index 4f9ea0704d..208e181e0d 100644 --- a/Maths/MeanAbsoluteDeviation.js +++ b/Maths/MeanAbsoluteDeviation.js @@ -15,7 +15,7 @@ function meanAbsoluteDeviation (data) { for (const dataPoint of data) { absoluteSum += Math.abs(dataPoint - meanValue) } - return (absoluteSum / data.length).toFixed(3) + return parseFloat((absoluteSum / data.length).toFixed(3)) } export { From 3c09bd4e54fc9fec5eceb61a32117f6132a456f7 Mon Sep 17 00:00:00 2001 From: Prashal Ruchiranga Date: Tue, 11 Oct 2022 08:15:38 +0530 Subject: [PATCH 4/6] Update MeanAbsoluteDeviation.test.js --- Maths/test/MeanAbsoluteDeviation.test.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/Maths/test/MeanAbsoluteDeviation.test.js b/Maths/test/MeanAbsoluteDeviation.test.js index 7ad210ad56..f79430a90d 100644 --- a/Maths/test/MeanAbsoluteDeviation.test.js +++ b/Maths/test/MeanAbsoluteDeviation.test.js @@ -14,5 +14,3 @@ describe('tests for mean absolute deviation', () => { expect(meanAbDev).toBe(10.480) }) }) - -console.log(typeof meanAbsoluteDeviation) \ No newline at end of file From 65e5fdee2c9d04e13b030c81db020289335e6523 Mon Sep 17 00:00:00 2001 From: Prashal Ruchiranga Date: Tue, 11 Oct 2022 08:22:30 +0530 Subject: [PATCH 5/6] Update MeanAbsoluteDeviation.test.js --- Maths/MeanAbsoluteDeviation.js | 4 ++-- Maths/test/MeanAbsoluteDeviation.test.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Maths/MeanAbsoluteDeviation.js b/Maths/MeanAbsoluteDeviation.js index 208e181e0d..a51647ca8b 100644 --- a/Maths/MeanAbsoluteDeviation.js +++ b/Maths/MeanAbsoluteDeviation.js @@ -1,4 +1,4 @@ -import { mean } from "./AverageMean.js" +import { mean } from './AverageMean.js' /** *@function meanAbsoluteDeviation *@description Calculates the mean absolute deviation of list of numbers @@ -11,7 +11,7 @@ function meanAbsoluteDeviation (data) { throw new TypeError('Invalid Input') } let absoluteSum = 0 - let meanValue = mean(data) + const meanValue = mean(data) for (const dataPoint of data) { absoluteSum += Math.abs(dataPoint - meanValue) } diff --git a/Maths/test/MeanAbsoluteDeviation.test.js b/Maths/test/MeanAbsoluteDeviation.test.js index f79430a90d..25e81215e2 100644 --- a/Maths/test/MeanAbsoluteDeviation.test.js +++ b/Maths/test/MeanAbsoluteDeviation.test.js @@ -1,4 +1,4 @@ -import {meanAbsoluteDeviation} from '../MeanAbsoluteDeviation.js' +import { meanAbsoluteDeviation } from '../MeanAbsoluteDeviation.js' describe('tests for mean absolute deviation', () => { it('should be a function', () => { @@ -10,7 +10,7 @@ describe('tests for mean absolute deviation', () => { }) it('should return the mean absolute devition of an array of numbers', () => { - const meanAbDev = meanAbsoluteDeviation([2,34,5,0,-2]) + const meanAbDev = meanAbsoluteDeviation([2, 34, 5, 0, -2]) expect(meanAbDev).toBe(10.480) }) }) From 09c0c67a8a7a4a8ebc495879a83048475c5b8213 Mon Sep 17 00:00:00 2001 From: Prashal Ruchiranga Date: Tue, 11 Oct 2022 13:06:26 +0530 Subject: [PATCH 6/6] Updated MeanAbsoluteDeviation.js and MeanAbsoluteDeviation.test.js --- Maths/MeanAbsoluteDeviation.js | 2 +- Maths/test/MeanAbsoluteDeviation.test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Maths/MeanAbsoluteDeviation.js b/Maths/MeanAbsoluteDeviation.js index a51647ca8b..14248dd482 100644 --- a/Maths/MeanAbsoluteDeviation.js +++ b/Maths/MeanAbsoluteDeviation.js @@ -15,7 +15,7 @@ function meanAbsoluteDeviation (data) { for (const dataPoint of data) { absoluteSum += Math.abs(dataPoint - meanValue) } - return parseFloat((absoluteSum / data.length).toFixed(3)) + return absoluteSum / data.length } export { diff --git a/Maths/test/MeanAbsoluteDeviation.test.js b/Maths/test/MeanAbsoluteDeviation.test.js index 25e81215e2..33fa38d2f6 100644 --- a/Maths/test/MeanAbsoluteDeviation.test.js +++ b/Maths/test/MeanAbsoluteDeviation.test.js @@ -11,6 +11,6 @@ describe('tests for mean absolute deviation', () => { it('should return the mean absolute devition of an array of numbers', () => { const meanAbDev = meanAbsoluteDeviation([2, 34, 5, 0, -2]) - expect(meanAbDev).toBe(10.480) + expect(meanAbDev).toBe(10.479999999999999) }) }) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy