Question: Je teste des fonctions dans un paquet que je suis en train de développer et je voudrais savoir si vous pouvez suggérer quelques directives générales pour ce faire. Les fonctions comprennent un large éventail de modélisation statistique, de transformations, de sous-ensembles et de traçage. Existe-t-il un test «standard» ou suffisant?directives pour tester une fonction statistique dans R?
Exemple: le test qui m'a poussé pose cette question,
La fonction 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))
}
Étape 1: données de test:
set.seed(100) # per Dirk's recommendation
test <- rnorm(100000,10,1)
Étape 2: comparer la sortie attendue de la fonction avec la sortie réelle de la fonction:
expected <- quantile(test, c(0.35, 0.65, 0.5))
actual <- dtheta(test)[1:3]
signif(expected,2) %in% signif(actual,2)
Étape 3: peut-être faire un autre test
test2 <- runif(100000, 0, 100)
expected <- c(35, 50, 65)
actual <- dtheta(test2)
expected %in% signif(actual,2)
Étape 4: si cela est vrai, pensez à la fonction 'fonctionnelle'
+1 Joris pour tester l'entrée. Je voudrais ajouter pour tester la * sortie * aussi bien. La sortie de vos fonctions doit être * prévisible * et * définie avec précision *. Malheureusement sur ce point, la fonctionnalité de base de R est parfois tout simplement nulle. Ne sait jamais exactement ce que la fonction retourne, sauf si vous allez à nouveau à la documentation, et encore, et encore ... – VitoshKa