You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让testthat::expect_equal()强制采用绝对差值测试?

强制testthat::expect_equal()使用绝对差值测试的方法

要让testthat::expect_equal()始终以绝对距离进行校验(无论x与y的差异大小),最优雅的方式是调用函数时指定scale = 0参数,同时通过tolerance设置允许的绝对误差阈值:

# 示例:验证x与y的绝对差值不超过0.5
testthat::expect_equal(x, y, tolerance = 0.5, scale = 0)

原理说明

在testthat 3.x版本中,scale参数决定了误差的计算逻辑:

  • 默认情况下,函数会根据数值大小自动切换相对/绝对误差模式;
  • 当设置scale = 0时,函数会强制使用绝对误差校验,直接比较abs(x - y)与tolerance的大小,完全跳过相对误差的判断逻辑。

内容的提问来源于stack exchange,提问作者A.Fischer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:15:49