◐ Shell
clean mode source ↗

fix: improve mean function with input validation and extended tests by FatihBARACKILIC · Pull Request #1785 · TheAlgorithms/JavaScript

Conversation

@FatihBARACKILIC

Open in Gitpod know more

Describe your change:

  • Fix a bug or typo in an existing algorithm

This PR improves the mean function by:

  • Adding input validation:
    • Throws TypeError if input is not an array or contains non-number elements
    • Throws Error if array is empty
  • 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-commenter

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.88%. Comparing base (1d252d7) to head (2b05c6b).
⚠️ Report is 4 commits behind head on master.

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.

pertrai1

raklaptudirm