tests/testthat/test.artlm.R

# Tests for artlm
#
# Author: mjskay
###############################################################################

context("artlm")

test_that("artlm returns models whose data can be recovered by emmeans", {
    skip_if_not_installed("emmeans")

    data(Higgins1990Table5, package = "ARTool")


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

    #should be able to run emmeans on the linear model
    #this will only work if emmeans can recover the data using
    #emmeans:::recover.data, which will only work if artlm
    #correctly sets the environment of the returned model
    expect_equal(
      summary(pairs(emmeans::emmeans(artlm(m, "Moisture"), "Moisture")))$t,
      c(-7.40049, -10.82022, -4.86242, -3.41972, 2.53808, 5.95780),
      tolerance = 0.0001
    )


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

    #will only work if emmeans can recover data (see comment above)
    expect_equal(
      summary(pairs(emmeans::emmeans(artlm(m, "Moisture"), "Moisture")))$t,
      c(-5.60684, -8.19773, -3.68392, -2.59089, 1.92292, 4.51381),
      tolerance = 0.0001
    )


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

    #will only work if emmeans can recover data (see comment above)
    expect_equal(
      summary(pairs(emmeans::emmeans(artlm(m, "Moisture"), "Moisture")))$t,
      c(-5.60684, -8.19773, -3.68392, -2.59089, 1.92292, 4.51381),
      tolerance = 0.0001
    )
})
mjskay/ARTool documentation built on Oct. 15, 2021, 1:27 p.m.