Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Nan的单元测试检查_Python_Nan_Python Unittest - Fatal编程技术网

Python Nan的单元测试检查

Python Nan的单元测试检查,python,nan,python-unittest,Python,Nan,Python Unittest,我面临的问题是检查我的函数在一个unittest用例中是否返回nan 我做了一点研究,发现已经有人问了如何做,并提供了一个解决方案 其中一种解决方案是使用assertTrue(math.isnan(nan_值)),但如果x既不是float也不是Real,则会产生TypeError 另一种解决方案是定义一类数字断言,您可以在其中处理nan情况。我可以实现这一点,并愉快地解决我的问题 然而,检查nan看起来像是很多人可能需要做的一个常见测试(在单元测试中或者只是在普通if/else块中) 所以我的问

我面临的问题是检查我的函数在一个unittest用例中是否返回nan

我做了一点研究,发现已经有人问了如何做,并提供了一个解决方案

其中一种解决方案是使用
assertTrue(math.isnan(nan_值))
,但如果
x
既不是
float
也不是
Real
,则会产生
TypeError

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

然而,检查nan看起来像是很多人可能需要做的一个常见测试(在单元测试中或者只是在普通if/else块中)

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


numpy、math或unittest库中是否存在类似的功能?我认为在unittest中使用
assertNan
函数非常有用,因为对于非
float
数据类型,无论哪种方式,我都不会使用
逻辑子句的计算顺序(和跳过)的隐式特性。即,如果第一个操作数为
False
,则不计算第二部分:

assertTrue(type(nan_value) is float and math.isnan(nan_value))
在上面的代码中,如果
nan\u值
的类型不是
float
,则
子句是
False
,因此
数学。不计算isnan(nan\u值)
,并且不生成
类型错误