test: migrate math/base/special/rempio2f to ULP-based testing#12810
test: migrate math/base/special/rempio2f to ULP-based testing#12810Planeshifter wants to merge 1 commit into
math/base/special/rempio2f to ULP-based testing#12810Conversation
---
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.jsformath/base/special/rempio2ffrom relative-tolerance (EPS-based) assertions to ULP-difference assertions using@stdlib/number/float32/base/assert/is-almost-same-value(single-precision variant, following the convention used for otherfpackages such asacothfandatanhf), with the minimum required ULP values.absfandEPSrequires and thedelta/tolvariables from migrated test blocks.Details on the chosen ULP values:
z = float64ToFloat32( (PIO2*n) + y[0] )against the inputx, with unseededranduinputs in three of the blocks. Because the per-run ULP difference is not deterministic for random inputs, the bound was certified by exhaustive enumeration of all 1,120,403,456 single-precision values in(0, 100]for each sign: the maximum ULP difference is1in both directions, and roughly 0.35% of inputs in the domain produce a 1-ULP difference, so a0ULP tolerance would flake.1is therefore the minimum ULP value which never fails. The deterministic multiples-of-π/4 block likewise has a maximum ULP difference of1(2 of 20 cases are not exact).float64ToFloat32( ±1.0e-100 * randu() )underflows to±0, so the reconstruction is exact and the assertions use plaint.strictEqual( z, x, ... )per the migration guidelines for exactly matching values.1, with the tiny blocks exact, so the native ULP values are identical to the JavaScript values and no divergence note is required.The minimum ULP values were independently re-verified by direct ULP-difference computation (exhaustive single-precision domain enumeration) prior to opening this pull request.
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
No.
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 test suites to ULP-based assertions (issue #11352). The minimum ULP values were computed programmatically and independently verified by a second adversarial agent before opening this PR.
@stdlib-js/reviewers