test: migrate math/base/special/ahaversinf to ULP-based testing#12798
test: migrate math/base/special/ahaversinf to ULP-based testing#12798Planeshifter wants to merge 1 commit into
math/base/special/ahaversinf to ULP-based testing#12798Conversation
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
- task: lint_filenames
status: passed
- task: lint_editorconfig
status: passed
- task: lint_markdown_pkg_readmes
status: na
- task: lint_markdown_docs
status: na
- task: lint_markdown
status: na
- task: lint_package_json
status: na
- task: lint_repl_help
status: na
- task: lint_javascript_src
status: na
- task: lint_javascript_cli
status: na
- task: lint_javascript_examples
status: na
- task: lint_javascript_tests
status: passed
- task: lint_javascript_benchmarks
status: na
- task: lint_python
status: na
- task: lint_r
status: na
- task: lint_c_src
status: na
- task: lint_c_examples
status: na
- task: lint_c_benchmarks
status: na
- task: lint_c_tests_fixtures
status: na
- task: lint_shell
status: na
- task: lint_typescript_declarations
status: passed
- task: lint_typescript_tests
status: na
- task: lint_license_headers
status: passed
---
|
Hello! 👋 We've noticed that you've been opening a number of PRs addressing good first issues. Thank you for your interest and enthusiasm! Now that you've made a few contributions, we suggest no longer working on good first issues. Instead, we encourage you to prioritize cleaning up any PRs which have yet to be merged and then proceed to work on more involved tasks. Not only does this ensure that other new contributors can work on things and get ramped up on all things stdlib, it also ensures that you can spend your time on more challenging problems. 🚀 For ideas for future PRs, feel free to search the codebase for TODOs and FIXMEs and be sure to check out other open issues on the issue tracker. Cheers! |
Coverage Report
The above coverage report was generated for the changes in this PR. |
Resolves a part of #11352.
Description
This pull request:
test/test.jsandtest/test.native.jsinmath/base/special/ahaversinffrom relative-tolerance (EPS-based) assertions to ULP-difference assertions via@stdlib/number/float32/base/assert/is-almost-same-value(the single-precision variant, following the pattern established inmath/base/special/acothfandmath/base/special/atanhf), with expected values coerced to single precision via@stdlib/number/float64/base/to-float32.@stdlib/number/float32/base/ulp-difference:datafixtures: maximum ULP difference of2(32 cases exceed ULP1, so2is minimal).small_positivefixtures: exact after single-precision coercion (maximum ULP difference of0), so plaint.strictEqual( y, e, 'returns expected value' )is used instead ofisAlmostSameValue.@stdlib/math/base/special/absfrequire and thedelta/tolvariables; the@stdlib/constants/float32/epsrequire is retained, as it is still used by the out-of-domain (NaN) range tests.Native (C) results are bit-identical to the JavaScript implementation on the test machine (arm64/clang): the same ULP values apply to both files, and no compiler-divergence
NOTEannotation is needed. The native test suite was built and run successfully (all assertions passing), and the full JavaScript test harness passed as well.Related Issues
This pull request has the following related issues:
math/base/specialpackages from relative tolerance testing to ULP difference testing (tracking issue) #11352Questions
No.
Other
The minimum ULP values were independently re-verified by an adversarial review pass which recomputed the maximum ULP difference per fixture block directly against the unchanged implementation.
Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was written by Claude Code as part of an automated migration of
math/base/specialtest suites to ULP-based testing (issue #11352), including independent recomputation of the minimum ULP tolerances, and was reviewed by a separate adversarial verification pass before submission.@stdlib-js/reviewers