Вопрос: Я тестирую функции в пакете, который я разрабатываю, и хотел бы знать, можете ли вы предложить некоторые общие рекомендации относительно того, как это сделать. Эти функции включают в себя широкий спектр статистического моделирования, преобразований, подмножества и построения графиков. Есть ли "стандартный" или достаточный тест?
Пример: тест, который побудил меня задать этот вопрос,
Функция dtheta:
dtheta <- function(x) {
## find the quantile of the mean
q.mean <- mean(mean(x) >= x)
## find the quantiles of ucl and lcl (q.mean +/- 0.15)
q.ucl <- q.mean + 0.15
q.lcl <- q.mean - 0.15
qs <- c(q.lcl, q.mean, q.ucl)
## find the lcl, mean, and ucl of the vector
c(quantile(x,qs), var(x), sqrt(var(x))/mean(x))
}
Шаг 1: выполните тестовые данные:
set.seed(100) # per Dirk recommendation
test <- rnorm(100000,10,1)
Шаг 2: сравните ожидаемый результат функции с фактическим выходом функции:
expected <- quantile(test, c(0.35, 0.65, 0.5))
actual <- dtheta(test)[1:3]
signif(expected,2) %in% signif(actual,2)
Шаг 3: возможно, выполните еще один тест
test2 <- runif(100000, 0, 100)
expected <- c(35, 50, 65)
actual <- dtheta(test2)
expected %in% signif(actual,2)
Шаг 4: если true, рассмотрим функцию "функционал"