-
-
Notifications
You must be signed in to change notification settings - Fork 416
algorithm: average/mean #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
raklaptudirm
merged 5 commits into
TheAlgorithms:master
from
orangegrove1955:add-average-mean
Oct 9, 2022
Merged
Changes from 3 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
228711a
Added AverageMean and associated tests to Maths
orangegrove1955 c7f7784
Added correction to documentation, formatted
orangegrove1955 c5b6c96
Added return type to AverageMean
orangegrove1955 ceecb2a
Removed unnecessary array check
orangegrove1955 0a85b51
Renamed from AverageMean to calculateMean
orangegrove1955 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
/** | ||
* @function AverageMean | ||
* @description This script will find the mean value of a array of numbers. | ||
* @param {number[]} numbers - Array of numeric values | ||
* @return {number} - mean of input numbers | ||
* @see [Mean](https://en.wikipedia.org/wiki/Mean) | ||
* @example AverageMean([1, 2, 4, 5]) = 3 | ||
* @example AverageMean([10, 40, 100, 20]) = 42.5 | ||
*/ | ||
|
||
export const AverageMean = (numbers: number[]): number => { | ||
if (!Array.isArray(numbers) || numbers.length < 1) { | ||
throw new TypeError("Invalid Input"); | ||
} | ||
|
||
// This loop sums all values in the 'numbers' array using an array reducer | ||
const sum = numbers.reduce((sum, current) => sum + current, 0); | ||
|
||
// Divide sum by the length of the 'numbers' array. | ||
return sum / numbers.length; | ||
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import { AverageMean } from "../AverageMean"; | ||
|
||
describe("Tests for AverageMean", () => { | ||
it("should be a function", () => { | ||
expect(typeof AverageMean).toEqual("function"); | ||
}); | ||
|
||
it("should throw error for invalid input", () => { | ||
expect(() => AverageMean([])).toThrow(); | ||
}); | ||
|
||
it("should return the mean of an array of consecutive numbers", () => { | ||
const meanFunction = AverageMean([1, 2, 3, 4]); | ||
expect(meanFunction).toBe(2.5); | ||
}); | ||
|
||
it("should return the mean of an array of numbers", () => { | ||
const meanFunction = AverageMean([10, 40, 100, 20]); | ||
expect(meanFunction).toBe(42.5); | ||
}); | ||
|
||
it("should return the mean of an array of decimal numbers", () => { | ||
const meanFunction = AverageMean([1.3, 12.67, 99.14, 20]); | ||
expect(meanFunction).toBe(33.2775); | ||
}); | ||
|
||
it("should return the mean of an array of numbers, including negatives", () => { | ||
const meanFunction = AverageMean([10, -40, 100, -20]); | ||
expect(meanFunction).toBe(12.5); | ||
}); | ||
}); |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.