tests/testthat/test-stat_lmer.R

test_that("errors in model fit are properly handled", {
  # create a confounded variable
  data <- adnimerge %>%
    dplyr::mutate(PTAU_NFL_RATIO_bl = PLASMA_PTAU181_bl + PLASMA_NFL_bl)

  # a few models failing should still works
  expect_error(
    model <- data %>% aba_model() %>%
      set_groups(DX_bl == 'MCI', everyone()) %>%
      set_outcomes(CDRSB) %>%
      set_predictors(
        PLASMA_PTAU181_bl,
        PLASMA_NFL_bl,
        PTAU_NFL_RATIO_bl,
        c(PLASMA_PTAU181_bl, PLASMA_NFL_bl, PTAU_NFL_RATIO_bl),
        .labels = c('T', 'N', 'TN', 'TN2')
      ) %>%
      set_covariates(AGE, GENDER, EDUCATION) %>%
      set_stats(
        stat_lmer(id='RID', time='YEARS_bl')
      ) %>%
      fit(),
    NA
  )

  expect_error(
    ms <- model %>% aba_summary(),
    NA
  )

  # all models failing should not give an error
  expect_error(
    model <- data %>% aba_model() %>%
      set_groups(DX_bl == 'MCI', everyone()) %>%
      set_outcomes(CDRSB) %>%
      set_predictors(
        AGE, GENDER, EDUCATION
      ) %>%
      set_covariates(PLASMA_PTAU181_bl, PLASMA_NFL_bl, PTAU_NFL_RATIO_bl) %>%
      set_stats(
        stat_lmer(id='RID', time='YEARS_bl')
      ) %>%
      aba_fit(),
    NA
  )

})


test_that("standard lme works", {
  expect_error(
    model <- adnimerge %>% aba_model() %>%
      set_groups(DX_bl == 'MCI', everyone()) %>%
      set_outcomes(MMSE, CDRSB) %>%
      set_predictors(
        PLASMA_PTAU181_bl,
        PLASMA_NFL_bl,
        c(PLASMA_PTAU181_bl, PLASMA_NFL_bl)
      ) %>%
      set_covariates(AGE, GENDER, EDUCATION) %>%
      set_stats(
        stat_lmer(id='RID', time='YEARS_bl')
      ) %>%
      aba_fit(),
    NA
  )

  expect_error(
    model <- adnimerge %>% aba_model() %>%
      set_groups(DX_bl == 'MCI', everyone()) %>%
      set_outcomes(MMSE, CDRSB) %>%
      set_predictors(
        PLASMA_PTAU181_bl,
        PLASMA_NFL_bl,
        c(PLASMA_PTAU181_bl, PLASMA_NFL_bl)
      ) %>%
      set_covariates(AGE, GENDER, EDUCATION) %>%
      set_stats(
        stat_lmer(id='RID', time='YEARS_bl')
      ) %>%
      aba_fit() %>%
      aba_summary(),
    NA
  )
})

test_that("forgetting parameters throws error", {
  model <- adnimerge %>% aba_model() %>%
    set_groups(DX_bl == 'MCI', everyone()) %>%
    set_outcomes(MMSE, CDRSB) %>%
    set_predictors(
      PLASMA_PTAU181_bl,
      PLASMA_NFL_bl,
      c(PLASMA_PTAU181_bl, PLASMA_NFL_bl)
    ) %>%
    set_covariates(AGE, GENDER, EDUCATION)

  expect_error(
    model %>%
      set_stats(stat_lmer(id='RID')) %>%
      aba_fit()
  )
  expect_error(
    model %>%
      set_stats(stat_lmer(time='YEARS_bl')) %>%
      aba_fit()
  )
  expect_error(
    model %>%
      set_stats(stat_lmer()) %>%
      aba_fit()
  )

})
ncullen93/abaR documentation built on Feb. 8, 2024, 12:01 p.m.