代码之家  ›  专栏  ›  技术社区  ›  Sembei Norimaki

Nan的单元测试检查

  •  2
  • Sembei Norimaki  · 技术社区  · 5 年前

    做了一些调查我发现 this question 它已经询问了如何做到这一点,并提供了解决方案。

    解决方案之一是使用 assertTrue(math.isnan(nan_value)) TypeError 如果 x 都不是 float Real .

    另一种解决方案是定义一类可以处理nan大小写的数值断言。我可以实现这一点并愉快地解决我的问题。

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

    在numpy、math或unittest库中是否存在这样的特性?我想如果有一个 assertNan unittest中的函数

    1 回复  |  直到 5 年前
        1
  •  1
  •   sophros    5 年前

    float 数据类型它不是nan,不管怎样,我都会使用求值顺序(和跳过)的隐式特性 and 逻辑从句。也就是说,如果第一个操作数是 False ,则不评估第二部分:

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

    在上面的代码中如果 nan_value 不是 浮动 条款是 所以 math.isnan(nan_value) 未评估且否 TypeError