tests/testthat/test_univariateML.R

univariateML_densities <- c("norm", "lnorm", "weibull", "invgauss", "beta")

# There are some exceptions we won't test.

exceptions <- c("pareto", "unif", "lomax")

generate_random <- function(n, support) {
  if (support == "c(-Inf, Inf)") {
    return(rnorm(n))
  }
  if (support == "c(0, Inf)") {
    return(rgamma(n, 4, 4))
  }
  if (support == "c(1, Inf)") {
    return(rexp(n) + 1)
  }
  if (support == "c(0, 1)") {
    return(runif(n))
  }
  stop()
}

# Actual testing for all non-exceptions.
set.seed(10)
n <- 50

for (name in univariateML_densities) {
  support <- deparse(get_density_and_support(name)$support)
  rands <- generate_random(n, support)
  kde <- kdensity(rands, start = name)
  coef(kde)
  logLik(kde)
  AIC(kde)
}

# For Lomax
rands <- extraDistr::rlomax(n, 2, 3)
kde <- kdensity(rands, start = "lomax")
coef(kde)
logLik(kde)
AIC(kde)
JonasMoss/kdensity documentation built on April 5, 2025, 2:48 p.m.