2

我一直在编写代码来创建一个并行的 lapply() 类型函数,该函数使用 Amazon 的 Elastic Map Reduce 引擎作为处理的“网格”(是的,它是一个没有减速器的映射器)。在我得到稳定的代码后,我会将它抽象为一个 foreach 后端。但首先我需要构建测试来测试我拥有的代码。

这个函数有什么好的测试用例?

我现在的规范测试用例如下:

myList <- NULL
set.seed(1)
for (i in 1:10){
  a <- c(rnorm(999), NA)
  myList[[i]] <- a
}
outputLocal <- lapply(myList, mean, na.rm=T)
outputEmr   <- emrlapply(myList, mean, myCluster, na.rm=T)
all.equal(outputEmr, outputLocal) 

这个测试用例确保可选参数na.rm=T正确地传递给远程机器。我可以使用哪些其他测试用例?我目前不支持simplifyUSE.NAMES争论,尽管我会在未来。

4

1 回答 1

1

如果你通过会发生什么emrlapply

  • 字符向量列表
  • 空列表
  • NA仅在删除所有值后才为空的列表
  • NULL
  • 向量(lapply与向量一起使用)
  • 矩阵
  • 一个数据框
  • 列表列表

您还需要进行测试,以查看您的函数是否可以正常处理 EMR 不可用或缺少所需的包。

于 2011-01-05T13:10:55.937 回答