fix: improve mean function with input validation and extended tests by FatihBARACKILIC · Pull Request #1785 · TheAlgorithms/JavaScript
Conversation
Describe your change:
- Fix a bug or typo in an existing algorithm
This PR improves the mean function by:
- Adding input validation:
- Throws
TypeErrorif input is not an array or contains non-number elements - Throws
Errorif array is empty
- Throws
- Adding a comprehensive test suite using
Vitest, which includes:- Empty arrays
- Invalid elements like
null,true,'string' - Floating-point numbers, negative values, large values
- Mixed integer and float arrays
The function now adheres more strictly to the expected behavior and is more robust against invalid input.
Checklist:
- I have read CONTRIBUTING.md.
- This pull request is all my own work -- I have not plagiarized.
- I know that pull requests will not be merged if they fail the automated tests.
- This PR only changes one algorithm file. To ease review, please open separate PRs for separate algorithms.
- All new JavaScript files are placed inside an existing directory.
- All filenames use the UpperCamelCase (PascalCase) style.
- All new algorithms have a URL in their comments that points to Wikipedia or another similar explanation.
Codecov Report
✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.88%. Comparing base (1d252d7) to head (2b05c6b).
Additional details and impacted files
@@ Coverage Diff @@ ## master #1785 +/- ## ======================================= Coverage 85.87% 85.88% ======================================= Files 377 377 Lines 19720 19731 +11 Branches 3005 3008 +3 ======================================= + Hits 16935 16946 +11 Misses 2785 2785
☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.
🚀 New features to boost your workflow:
- ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
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