# --------------------------------------------------------- # formula must be a formula # --------------------------------------------------------- test_that("nonlinear mixed model validates formula", { skip_if_not_installed("nlme") dat <- data.frame( id = factor(1:10), x = 1:10, y = 1:10 ) expect_error( fit_nlme_biomix( formula = "y ~ x", data = dat, fixed = a ~ 1, random = a ~ 1 | id, start = c(a = 1) ), "formula must be a formula" ) }) # --------------------------------------------------------- # data must be a data frame or groupedData object # --------------------------------------------------------- test_that("nonlinear mixed model validates data", { skip_if_not_installed("nlme") expect_error( fit_nlme_biomix( formula = y ~ x, data = list( y = 1:10, x = 1:10 ), fixed = a ~ 1, random = a ~ 1, start = c(a = 1) ), "data must be a data frame or groupedData object" ) }) # --------------------------------------------------------- # fixed must be supplied # --------------------------------------------------------- test_that("nonlinear mixed model requires fixed effects", { skip_if_not_installed("nlme") dat <- data.frame( id = factor(1:10), x = 1:10, y = 1:10 ) expect_error( fit_nlme_biomix( formula = y ~ x, data = dat, random = a ~ 1 | id, start = c(a = 1) ), "The 'fixed' argument must be supplied" ) }) # --------------------------------------------------------- # random must be supplied # --------------------------------------------------------- test_that("nonlinear mixed model requires random effects", { skip_if_not_installed("nlme") dat <- data.frame( id = factor(1:10), x = 1:10, y = 1:10 ) expect_error( fit_nlme_biomix( formula = y ~ x, data = dat, fixed = a ~ 1, start = c(a = 1) ), "The 'random' argument must be supplied" ) }) # --------------------------------------------------------- # start must be supplied # --------------------------------------------------------- test_that("nonlinear mixed model requires starting values", { skip_if_not_installed("nlme") dat <- data.frame( id = factor(1:10), x = 1:10, y = 1:10 ) expect_error( fit_nlme_biomix( formula = y ~ x, data = dat, fixed = a ~ 1, random = a ~ 1 | id ), "Starting values must be supplied through 'start'" ) }) # --------------------------------------------------------- # start must be numeric # --------------------------------------------------------- test_that("nonlinear mixed model validates numeric starting values", { skip_if_not_installed("nlme") dat <- data.frame( id = factor(1:10), x = 1:10, y = 1:10 ) expect_error( fit_nlme_biomix( formula = y ~ x, data = dat, fixed = a ~ 1, random = a ~ 1 | id, start = "1" ), "'start' must be a named numeric vector" ) }) # --------------------------------------------------------- # start must have names # --------------------------------------------------------- test_that("nonlinear mixed model validates named starting values", { skip_if_not_installed("nlme") dat <- data.frame( id = factor(1:10), x = 1:10, y = 1:10 ) expect_error( fit_nlme_biomix( formula = y ~ x, data = dat, fixed = a ~ 1, random = a ~ 1 | id, start = c(1) ), "'start' must be a named numeric vector" ) })