tests/testthat/test.artlm.con.R

# Tests for artlm.con
#
# Author: lelkin
###############################################################################

library(testthat)
library(ARTool)

context("artlm.con")

test_that("artlm.con matches with art.con",{
  data(Higgins1990Table5, package = "ARTool")

  # run art without grouping term to use lm
  m = art(DryMatter ~ Moisture*Fertilizer, data=Higgins1990Table5)

  expect_equal(
    summary(art.con(m, "Moisture")),
    summary(contrast(emmeans(artlm.con(m, "Moisture"), ~ Moisture), method="pairwise"))
  )

  expect_equal(
    summary(art.con(m, "Moisture:Fertilizer")),
    summary(contrast(emmeans(artlm.con(m, "Moisture:Fertilizer"), ~ MoistureFertilizer), method="pairwise"))
  )

  # grouping term to force lmer
  m = art(DryMatter ~ Moisture*Fertilizer + (1|Tray), data=Higgins1990Table5)

  expect_equal(
    summary(art.con(m, "Moisture")),
    summary(contrast(emmeans(artlm.con(m, "Moisture"), ~ Moisture), method="pairwise"))
  )

  expect_equal(
    summary(art.con(m, "Moisture:Fertilizer")),
    summary(contrast(emmeans(artlm.con(m, "Moisture:Fertilizer"), ~ MoistureFertilizer), method="pairwise"))
  )

  # should still work even if input data frame is a tibble
  m = art(DryMatter ~ Moisture*Fertilizer + (1|Tray), data = tibble::as_tibble(Higgins1990Table5))

  expect_equal(
    summary(art.con(m, "Moisture")),
    summary(contrast(emmeans(artlm.con(m, "Moisture"), ~ Moisture), method="pairwise"))
  )

  # error term
  # can't use Higgins Table 5 because it's unbalanced with respect to Moisture:Fertilizer
  data(ElkinAB, package = "ARTool")
  m = art(Y ~ A*B + Error(S), data=ElkinAB)

  expect_equal(
    summary(art.con(m, "A")),
    summary(contrast(emmeans(artlm.con(m, "A"), ~ A), method="pairwise"))
  )

  expect_equal(
    summary(art.con(m, "A:B")),
    summary(contrast(emmeans(artlm.con(m, "A:B"), ~ AB), method="pairwise"))
  )
})

test_that("artlm.con matches with artlm in single-factor case",{

  # run art without grouping term to use lm
  m = art(DryMatter ~ Moisture*Fertilizer, data=Higgins1990Table5)

  expect_equal(
    summary(contrast(emmeans(artlm.con(m, "Moisture"), ~ Moisture), method="pairwise")),
    summary(contrast(emmeans(artlm(m, "Moisture"), ~ Moisture), method="pairwise"))
  )

  # run art with grouping term to use lmer
  m = art(DryMatter ~ Moisture*Fertilizer + (1|Tray), data=Higgins1990Table5)

  expect_equal(
    summary(contrast(emmeans(artlm.con(m, "Moisture"), ~ Moisture), method="pairwise")),
    summary(contrast(emmeans(artlm(m, "Moisture"), ~ Moisture), method="pairwise"))
  )

  # run art with error term to force aov
  m = art(DryMatter ~ Moisture*Fertilizer + Error(Tray), data=Higgins1990Table5)

  expect_equal(
    summary(contrast(emmeans(artlm.con(m, "Moisture"), ~ Moisture), method="pairwise")),
    summary(contrast(emmeans(artlm(m, "Moisture"), ~ Moisture), method="pairwise"))
  )

})

Try the ARTool package in your browser

Any scripts or data that you put into this service are public.

ARTool documentation built on Oct. 13, 2021, 5:07 p.m.