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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.