我正在为我的R包iemisc
添加测试。以前,我创建的函数使用度数而不是弧度来表示三角函数。
有没有一种方法可以确定给定的数字是否以弧度为单位?
如果是这样,那么我想在我的测试中加入该方法。
例如,根据最近由John Mount,http://www.win-vector.com/blog/2019/03/unit-tests-in-r/和RUnit
小插图撰写的Win-Vector博客文章,我为cosd编写了以下测试:
test_cosd <- function() {
library("iemisc")
RUnit::checkEquals(cosd(360), 1)
RUnit::checkEquals(cosd(90), 0)
RUnit::checkEquals(cosd(0), 1)
RUnit::checkException(cosd(pi * 3 / 4))
RUnit::checkException(cosd("sq"))
invisible(NULL)
}
但是,对于弧度测量而不是度数测量的数字,我想有一个checkException。
谢谢。
可以利用这些度量之间的大小差异来对输入是度数还是弧度进行合理的推断。以度为单位的度量大约是以弧度表示的相同测量值的60倍。这可以从潜在的关系中看出:
180 degrees = pi (3.14159) radians
如果您可以安全地假设用户仅使用小于整圆的角度的工具(在许多物理产品工程应用中不合理,除非涉及螺旋螺旋螺旋),否则有一种简单的启发式可能。在这种情况下,假设值大于2 * pi或6.28表示度数是安全的。
否则,值本身是无法区分的。