tests/testthat/test-get_lr_tbl.R

test_that("get_lr_tbl works", {
  # data
  set.seed(1)
  data_mod <- data.frame(x = rnorm(20, 5) + rgamma(20, 0.01, 0.0001))
  data_mod[['y']] <- 3 * data_mod[['x']] + rnorm(20, sd = 5)

  # models
  mod_mu <- gamlss::gamlss(formula = y ~ -1 +  x,
                                    family = "NO",
                                    data = data_mod,
                                    control = gamlss::gamlss.control(trace = FALSE))
  mod_sigma <- gamlss::gamlss(formula = y ~ -1 +  x,
                              sigma.formula =  ~ x,
                              family = "NO",
                              data = data_mod,
                              control = gamlss::gamlss.control(trace = FALSE))

  # table
  lr_tbl <- get_lr_tbl(mod = mod_sigma, mod_null = mod_mu, mod_null_name = "sigma")

  # tests for table
  expect_identical(colnames(lr_tbl), c("Comp. model", "LR Chi^2", "LR DF",
                                       "LR P-value"))
  expect_equivalent(trunc(lr_tbl$`LR Chi^2` * 10), 39)
  expect_equivalent(lr_tbl$`LR DF`, 1)
  expect_equivalent(trunc(lr_tbl$`LR P-value` * 1000), 47)

  # if an error expected

  # table
  lr_tbl <- get_lr_tbl(mod = mod_mu, mod_null = mod_sigma, mod_null_name = "expected_error",
                       silent = TRUE)
  expect_identical(colnames(lr_tbl), c("Comp. model", "LR Chi^2", "LR DF",
                                       "LR P-value"))
  elem_vec <- rep(-1, 4)
  for(i in 2:ncol(lr_tbl)) elem_vec[i] <- lr_tbl[[i]][1]
  elem_vec <- elem_vec[-1]
  expect_identical(elem_vec, c(NA_real_, NA_real_, NA_real_))
  expect_identical("expected_error", lr_tbl[["Comp. model"]][1])
})
MiguelRodo/gamlssutils documentation built on July 9, 2020, 12:48 a.m.