我正在研究用于稀疏矩阵处理的R包。有点用;这是为我的问题打下基础的一个最小例子。
devtools::install_github("ekernf01/MatrixLazyEval", ref = "eef5593ad")
library(Matrix)
library(MatrixLazyEval)
data(CAex)
M = rbind(CAex, CAex)
M = matrix(stats::rnorm(prod(dim(M))), nrow = nrow(M))
M_lazy = AsLazyMatrix( M )
svd_lazy = RandomSVDLazyMatrix(M_lazy)
但是,即使运行最小的单元测试,它也会永久破坏软件包(我必须重新启动R会话或重新安装软件包)。直接原因是R无法从我依赖的包中找到某些S4方法(例如,对于t
包中的矩阵转置colSums
或Matrix
)。我像这样运行单元测试:
devtools::test(filter = "minimal")
svd_lazy = RandomSVDLazyMatrix(M_lazy)
这是测试文件的内容。
> cat tests/testthat.R
library(testthat)
testthat::test_check("MatrixLazyEval")
> cat tests/testthat/testthat_minimal.R
context("minimal")
为什么会这样?也许这很幼稚,但是单元测试什至不做任何事情。
编辑可能相关:
r - data.table and testthat package