我试探着:
import kotlin.Double.Companion.POSITIVE_INFINITY
import kotlin.Double.Companion.NaN
const val inf = POSITIVE_INFINITY
const val nan = NaN
但我得到:
Const '瓦尔'初始设定式应该是常数值
我需要这样做的原因是因为Junit5的参数化测试:
@ParameterizedTest
@ValueSource(doubles = doubleArrayOf(nan, inf, -2* epsilon, 1.5, -0.5, 1.0 + 2* epsilon))
fun ensureNotAProbability(number: Double)
{
...
}
由于Java注解的一些限制(在this SO answer中描述),“传递给注解”的内容只能是编译时常量。因此,我需要一个编译时NaN、正无穷大和负无穷大。
1条答案
按热度按时间de90aj5v1#
作为一种解决方法,您可以利用IEEE 754标准保证
0.0 / 0.0
为NaN且1.0 / 0.0
为+∞这一事实: