tests/testthat/test-clus_lme.R

test_that("clus_mle works with one contiuous covariate", {
  data(data_3class)
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class),
    class = "clus_lme")
})

test_that("clus_mle works with two contiuous covariates", {
  data(data_3class)
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ X1 + X2, name_class = "D",
                      name_clust = "id_Clus", data = data_3class),
    class = "clus_lme")
})

test_that("clus_mle works with one covariate and subset", {
  data(data_3class)
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ X1 + X2, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      subset = id_Clus %in% sample(1:30, 20, replace = FALSE)),
    class = "clus_lme")
})

test_that("clus_mle works with one covariate and levl_class", {
  data(data_3class)
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ X1 + X2, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      levl_class = c("1", "3", "2")),
    class = "clus_lme")
})

test_that("clus_mle works with one covariate and boxcox transformation", {
  data(data_3class_bcx)
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ X, name_class = "D",
                      name_clust = "id_Clus", data = data_3class_bcx,
                      boxcox = TRUE),
    class = "clus_lme")
})

test_that("clus_mle works with transformed covariate", {
  data(data_3class)
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ I(X1^2), name_class = "D",
                      name_clust = "id_Clus", data = data_3class),
    class = "clus_lme")
})

test_that("clus_mle works with transformed response", {
  data(data_3class_bcx)
  expect_s3_class(
    object = clus_lme(fixed_formula = log(Y) ~ X, name_class = "D",
                      name_clust = "id_Clus", data = data_3class_bcx),
    class = "clus_lme")
})

test_that("clus_mle does not work without input fixed_formula", {
  data(data_3class)
  expect_error(
    object = clus_lme(name_class = "D", name_clust = "id_Clus",
                      data = data_3class),
    regexp = "agrument \"fixed_formula\" must be a formula of the form \"resp ~ pred\"")
})

test_that("clus_mle does not work if removing intercept term from fixed_formula", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1 - 1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input fixed_formula as dot in predictors", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ ., name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input fixed_formula as dot in response", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = . ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input fixed_formula as dot", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = . ~ ., name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input wrong fixed_formula", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y, name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input wrong fixed_formula", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X, name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input wrong fixed_formula", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Z ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does not work if input missing name_class", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1,
                      name_clust = "id_Clus", data = data_3class),
    regexp = "agrument \"name_class\" was either missing or wrong name!")
})

test_that("clus_mle does not work if input missing name_class", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "",
                      name_clust = "id_Clus", data = data_3class),
    regexp = "agrument \"name_class\" was either missing or wrong name!")
})

test_that("clus_mle does not work if name_class is not character", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = D,
                      name_clust = "id_Clus", data = data_3class),
    regexp = "agrument \"name_class\" was either missing or wrong name!")
})

test_that("clus_mle does not work if input wrong name_class", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "X2",
                      name_clust = "id_Clus", data = data_3class),
    regexp = "agrument \"name_class\" must have 3 levels or classes!")
})

test_that("clus_mle does not work if input missing name_clust", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D", name_clust = "",
                      data = data_3class),
    regexp = "agrument \"name_clust\" was either missing or wrong name!")
})

test_that("clus_mle does not work if input missing name_clust", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      data = data_3class),
    regexp = "agrument \"name_clust\" was either missing or wrong name!")
})

test_that("clus_mle does not work if input missing name_clust", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "D", data = data_3class),
    regexp = "agrument \"name_clust\" cannot be the name of neither test, covariates nor classes!")
})

test_that("clus_mle does not work if input wrong levl_class", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      levl_class = 3))
})

test_that("clus_mle does not work if input wrong levl_class", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      levl_class = c("1", "2", NA)))
})

test_that("clus_mle does not work if input wrong levl_class", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      levl_class = c(1, 2, NA)))
})

test_that("clus_mle does not works for boxcox transformation in case of negative values", {
  data(data_3class)
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      boxcox = TRUE),
    regexp = "Cannot apply Box-Cox transform for negative values.")
})

test_that("clus_mle does not works without action for missing data", {
  data(data_3class)
  data_3class$X1[sample(1:30, 6, replace = FALSE)] <- NA
  expect_error(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class))
})

test_that("clus_mle does works with na.omit() for missing data", {
  data(data_3class)
  data_3class$X1[sample(1:30, 6, replace = FALSE)] <- NA
  expect_s3_class(
    object = clus_lme(fixed_formula = Y ~ X1, name_class = "D",
                      name_clust = "id_Clus", data = data_3class,
                      na_action = na.omit),
    class = "clus_lme")
})
toduckhanh/ClusROC documentation built on Nov. 22, 2022, 6:37 p.m.