Я работал над кодом для создания функции параллельного типа 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
правильно передается на удаленные машины. Какие еще тестовые примеры я мог бы использовать? В настоящее время я не поддерживаю simplify
или USE.NAMES
аргументы, хотя я буду в будущем.