Вопрос

Я работал над кодом для создания параллельной функции типа lapply(), которая использует механизм Amazon Elastic Map уменьшает в качестве «сетки» для обработки (да, это картограф без редуктора).После того, как я получу стабильность кода, я абстрагирую его как бэкэнд 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 аргументы, хотя я это сделаю в будущем.

Это было полезно?

Решение

Что произойдет, если вы пройдете emrlapply

  • Список векторов символов
  • Пустой список
  • Список, который пуст только после всех NA значения были удалены
  • NULL
  • Вектор (lapply работает с векторами)
  • Матрица
  • Data.frame
  • Список списков

Вам также понадобится тест, чтобы увидеть, корректно ли ваша функция обрабатывает недоступность EMR или отсутствие необходимых пакетов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top