Repository navigation
fix: differentiate positive and negative zero in doctesting - #15745
Merged
kgryte merged 2 commits intoOct 2, 2026
Merged
Conversation
---
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: skipped
- 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: passed
- 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
---
officiallyanee
marked this pull request as draft
October 1, 2026 14:14
kgryte
reviewed
Oct 2, 2026
kgryte
reviewed
Oct 2, 2026
kgryte
reviewed
Oct 2, 2026
| t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); | ||
|
|
||
| actual = new Float64Array( [ -0.0, 0.0 ] ); | ||
| expected = '<Float64Array>[ -0.0, 0.0 ]'; |
Member
There was a problem hiding this comment.
This is definitely an improvement!
Member
|
@officiallyanee You marked this PR as draft. Was that intentional? |
---
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: skipped
- 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: passed
- task: lint_javascript_cli
status: na
- task: lint_javascript_examples
status: na
- task: lint_javascript_tests
status: na
- 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
---
Member
Author
|
@kgryte Yes, I got caught up in something as I was writing the PR. I drafted it out so I can come back and check once more before marking it ready for review. |
2 of 7 tasks
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes. report:
Resolves none
Description
This pull request:
fixes an issue in
compareValueswhere signed zero (-0.0vs+0.0) was not differentiated in doctest return value comparisons:epsdiff( actual, expected ) < 10.0. Because IEEE 754 treats-0.0 == 0.0astrue,epsdiff( -0.0, 0.0 )evaluated to0, causing doctests to pass when a function returned-0.0where0.0/+0.0was expected (or vice versa).[ -0 ]), numeric-0values had their negative sign erased byString( expected )coercion (since in JavaScriptString(-0)evaluates to'0').TypedArrayinstances incompareEntries, callingmap( actual, formatValue )allocated a new typed array of the same constructor, which coerce the formatted'-0.0'string back into a numeric float and stringified it to'0', which will result in confusing error messages likeExpected entries [0], but observed [0].Related Issues
This pull request has the following related issues:
Questions
No.
Other
No.
Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
I used AI to understand where the issue stems from along with what are the possible fixes for it, compared some methods and reasoned to this one and checked the test cases for validness myself.
@stdlib-js/reviewers