tests/testthat/test_model_geoms.R

context("model_geoms.R")

library(ggplot2)
library(rlang)

data(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)
stats <- make_stats(
  lm(log10(mpg) ~ 0 + cyl, data = mtcars)
)

p <- ggplot(mtcars, aes(cyl, mpg)) +
  geom_point() +
  geom_stat_crossbar(stats) +
  geom_stat_text(stats) +
  geom_stat_label(stats, label = pval)

test_that("geom_stat_crossbar() works", {
  
  l2 <- p$layers[[2]]
  
  expect_true(quo_get_expr(l2$mapping$y) == "est")
  expect_true(quo_get_expr(l2$mapping$ymin) == "lwr")
  expect_true(quo_get_expr(l2$mapping$ymax) == "upr")
  
  expect_equivalent(names(l2$geom_params), c("fatten", "na.rm", "width"))
  expect_true(l2$geom_params$width == .5)
  
  expect_true(all(l2$data$cyl == c("4", "6", "8")))
})

test_that("geom_stat_text() works", {

  l3 <- p$layers[[3]]
  l4 <- p$layers[[4]]
  
  expect_true(is.infinite(l3$mapping$y))
  expect_true(is_quosure(l3$mapping$label))
  expect_true(quo_get_expr(l3$mapping$label) == "label")
  expect_equivalent(names(l3$geom_params), c("parse", "check_overlap", "na.rm"))
  expect_false(l3$geom_params$parse)
  
  
  expect_true(all(l3$data$cyl == c("4", "6", "8")))
})

test_that("geom_stat_label() works", {
  l4 <- p$layers[[4]]
  
  expect_true(is.infinite(l4$mapping$y))
  expect_true(is_quosure(l4$mapping$label))
  expect_true(quo_get_expr(l4$mapping$label) == "pval")
  expect_equivalent(
    names(l4$geom_params),
    c("parse", "label.padding", "label.r", "label.size", "na.rm")
  )
  expect_false(l4$geom_params$parse)
  expect_true(all(l4$data$cyl == c("4", "6", "8")))
})

detach("package:ggplot2", force = TRUE)
detach("package:rlang", force = TRUE)
rm(mtcars)
hemoshear/assayr2 documentation built on Nov. 8, 2019, 6:13 p.m.