【问题标题】:Double.NaN isCloseTo double value unexpectedly returns trueDouble.NaN isCloseTo double 值意外返回 true
【发布时间】:2017-10-06 12:10:19
【问题描述】:

AssertJ 在检查 double 是否接近 NaN 时返回 true。这是一个错误吗?

assertThat(Double.NaN).isCloseTo(0.00811, Percentage.withPercentage(0.1));

使用的版本是3.6.2

【问题讨论】:

  • 如果询问可能的错误,您应该包括您正在使用的确切版本。
  • 我也想知道那个超低的百分比值。也不会让我感到惊讶,这也会引起问题。除此之外:可能不是这个特定检查器的第一个错误:github.com/joel-costigliola/assertj-core/issues/611
  • 已编辑以包含版本和增加的百分比值
  • 错误在 assertIsCloseToPercentage 他们应该检查 diff 结果是否为 NaN。以下对于 Double.NaN 始终为 false if (absDiff(actual, other).doubleValue() > acceptedDiff) throw failures.failure(info, shouldBeEqualWithinPercentage(actual, other, percent, absDiff(actual, other)));跨度>
  • 是的,这是一个错误,请参阅Issue#984(从今天开始 [:-))

标签: java nan assertj


【解决方案1】:

正如Carlos Heuberger 在他的评论中指出的那样,这是a bug。它出现在 2.X3.X 分支中。

它已在两个分支中得到修复,版本 2.8.03.8.0

我刚刚测试了assertThat(Double.NaN).isCloseTo(0.00811, Percentage.withPercentage(0.1));,但它现在失败了,正如预期的那样。

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 2022-07-12
    • 2012-02-07
    • 2014-02-11
    • 2015-05-10
    • 1970-01-01
    • 2020-12-08
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多