gpt4 book ai didi

python - Nan 的单元测试检查

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:45 27 4
gpt4 key购买 nike

我面临着检查我的函数是否在其中一个单元测试案例中返回 nan 的问题。

我做了一些研究发现 this question已经询问如何去做并提供了解决方案。

其中一个解决方案是使用 assertTrue(math.isnan(nan_value)) 但它的缺点是如果 x 会引发 TypeError既不是 float 也不是 Real

另一个解决方案是定义一类数值断言,您可以在其中处理 nan 情况。我可以实现它并愉快地解决我的问题。

然而,检查 nan 看起来像是很多人可能需要做的常见测试(无论是在单元测试中还是在普通的 if/else block 中)。

所以我的问题有点像:是否已经有一个以标准方式执行此操作的实现,因此检查 nan 的任何人都将始终运行相同的代码并获得相同的结果?或者常见的方法是自己定义链接问题中提供的检查?

numpy、math 或 unittest 库中是否存在这样的功能?我认为在 unittest 中有一个 assertNan 函数会非常有用

最佳答案

考虑到对于非 float 数据类型,无论哪种方式都不是 nan 我将对 逻辑子句使用求值(和跳过)顺序的隐式特征.即,如果第一个操作数是 False,则不计算第二部分:

assertTrue(type(nan_value) is float and math.isnan(nan_value))

在上面的代码中,如果 nan_value 的类型不是 float 那么 and 子句是 False 所以math.isnan(nan_value) 未被计算且未生成 TypeError

关于python - Nan 的单元测试检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53725724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com