Comments (11)
@scordio @joel-costigliola
I created a PR for this issue.
from assertj.
Sure, go for it, @pbacz!
from assertj.
I propose to replace
==
check withequals()
check and also state clearly in the javadoc which is used.
I tend to favor this solution, consistent with what the Javadoc already states and also in line with OptionalDouble::equals
.
It's indeed a breaking change and the workaround to get the previous behavior would be something like:
assertThat(OptionalDouble.of(Double.NaN).getAsDouble()).isSameAs(Double.NaN);
@joel-costigliola do you agree?
from assertj.
In the meantime, that can be bypassed by testing the double value directly:
@Test
void testNaN() {
assertThat(OptionalDouble.of(Double.NaN).getAsDouble()).isNaN();
}
from assertj.
Thanks for reporting it, @Caceresenzo!
from assertj.
@scordio Do you need someone to make a change for this?
from assertj.
@scordio
The simplest solution here would be to replace ==
comparison with equals()
comparison.
This will have a side effect causing any test that compares 0.0
to -0.0
to fail (currently passing).
From the javadoc stating that assertThat(OptionalDouble.of(Double.NaN)).hasValue(Double.NaN)
should pass I conclude that this was always the intent to compare using equals()
.
I propose to replace ==
check with equals()
check and also state clearly in the javadoc which is used.
As this is potentially a breaking change for an edge case I'd like you to confirm if I should proceed with that.
from assertj.
A solution could be to add isNaN()
to match AbstractDoubleAssert
's API. (and add isNotNaN()
too?)
This would prevent breaking changes.
EDIT: typos
from assertj.
@Caceresenzo @scordio
Sure, I can do it either way. All I need is a decision
from assertj.
I think having both isNaN()
and isNotNaN()
would be best as there do not seems to be a method for the opposite of hasValue(...)
.
Currently this passes:
assertThat(OptionalDouble.of(Double.NaN))
.isNotEqualTo(Double.NaN);
(but I am sure its because its testing against the OptionalDouble and not the optional's value itself)
from assertj.
Integrated thanks @pbacz !
from assertj.
Related Issues (20)
- Standardize ShouldBeEqual and remove AssertionErrorFactory
- Failed containsOnlyNulls Assertion for Null-Extracted List Elements HOT 4
- Missing consistent order of Javadoc tags
- Merge assertj-core-java17 into assertj-core HOT 3
- Generating Javadoc in a Maven project using <detectLinks> does not work HOT 5
- Navigation to `assertj-core` or `guava` types from `assertj-guava` Javadoc site has unnecessary header
- `satisfiesOnlyOnce` stack trace does not point to failed nested assertion HOT 3
- Evaluate `DateTimeFormatter` as replacement of `SimpleDateFormat` for internal usage
- Support for Duration in Assertions.byLessThan, Assertions.within HOT 2
- Add an unwrap method to the API to get actual value HOT 3
- Unable to construct iterable assertions across a specific type easily HOT 7
- Ambiguous `assertThat` for `Temporal` instance implementing `Comparable` HOT 3
- 3.26 - Ambiguous assertThat with Temporal implementation HOT 1
- Extra variant for doesNotMatch
- Add an annotation Class navigation method
- Recursive Comparison With Ignored Fields Fails On Equal Collections HOT 4
- hasFieldOrPropertyWithValue accepting arrays
- reference to assertThat is ambiguous when asserting a `java.time.Year` HOT 1
- JPMS assertions HOT 2
- Do we have any way to describe the expected value? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from assertj.