r语言 - 测试其除以0



我想知道如何使用testthat包来检查除零。默认情况下,当尝试除以0时,R返回Inf。另一方面,我想检查用户是否以某种方式处理了除以0,并将其替换为其他结果,例如像("Don'tdivide by 0!")这样的文本。

问题是:用户可以用任何文本替换结果,不一定是我在测试公式中使用的文本。那么如何检查用户是否插入了除默认Inf以外的任何东西?

示例用户视图:
divide <- function(x, y) {
if(y!=0) x/y 
else
"Do not divide by zero"
}

和test(迄今为止):

test_that("divide by zero", {
expect_equivalent(divide(2, 0),"Do not divide by 0")
})

由于字符串不同,测试显然会失败。

如果用户正在编写一个需要除法的函数,但必须以某种方式处理除零(而不是默认返回Inf),我们可以这样做:

expect_false(is.infinite(divide(2, 0)))

最新更新