feat(maths): add type validation and comprehensive tests for isOdd by sibalonecoding-code · Pull Request #1885 · TheAlgorithms/JavaScript
Describe your change:
- Add an algorithm?
- Fix a bug or typo in an existing algorithm?
- Documentation change?
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 should use the UpperCamelCase (PascalCase) style. There should be no spaces in filenames.
Example:UserProfile.jsis allowed butuserprofile.js,Userprofile.js,user-Profile.js,userProfile.jsare not - All new algorithms have a URL in their comments that points to Wikipedia or another similar explanation.
- If this pull request resolves one or more open issues then the commit message contains
Fixes: #{$ISSUE_NO}.
Summary of changes
I have improved the robustness of isOdd and isOddBitwise by adding strict type validation (throwing TypeError for non-numeric inputs like strings, null, or NaN).
I also updated the test suite to cover these new edge cases and included a property-based test with random values to ensure mathematical consistency across a wide range.