Nothing
context("test-plot_design")
factor_maker <- function(factors) {
if (is.numeric(factors)) factors <- LETTERS[factors]
factors %>% stats::setNames(., .) %>% as.list() %>%
lapply(function(x) {
obj <- paste0("Level ", x, 1:2)
nm <- paste0(x, 1:2)
stats::setNames(obj, nm)
})
}
vardesc_maker <- function(factors) {
if (is.numeric(factors)) factors <- LETTERS[factors]
factors %>% stats::setNames(paste("Factor", .), .)
}
user_opts <- faux_options("sep", "verbose", "plot", "connection")
on.exit(faux_options(user_opts))
faux_options(plot = FALSE)
# error ----
test_that("error", {
df <- sim_design()
attributes(df)$design <- NULL
err <- "The data table must have a design attribute"
expect_error(plot_design(df), err)
expect_error(plot_design(iris), err)
err <- "x must be a design list or a data frame"
expect_error(plot_design(1), err)
expect_error(plot_design("A"), err)
expect_error(plot_design(matrix(1:100, 10)), err)
})
# wide2long ----
test_that("wide2long", {
set.seed(1)
df <- sim_design()
p1 <- plot_design(df)
expect_equal(class(p1), c("gg", "ggplot"))
set.seed(1)
df <- sim_design(long = TRUE)
p2 <- plot_design(df)
expect_equal(class(p2), c("gg", "ggplot"))
skip_on_cran()
expect_true(all.equal.function(p1, p2))
})
# order ----
test_that("order", {
des <- check_design(c(2,2,2,2,2,2))
p <- plot_design(des, "W6", "W5", "W4", "W3", "W2", "W1")
expect_equal(p$labels$x, "W5")
expect_equal(p$labels$fill, "W6")
expect_equal(p$labels$colour, "W6")
expect_equal(p$facet$params$rows %>% names(), c("W4", "W3"))
expect_equal(p$facet$params$cols %>% names(), c("W2", "W1"))
})
# subset ----
test_that("subset", {
des <- check_design(c(2,2,2,2,2,2))
p1 <- plot_design(des, "W1")
expect_equal(p1$labels$x, "W1")
expect_equal(p1$labels$fill, "W1")
expect_equal(p1$labels$colour, "W1")
expect_equal(p1$facet$params$rows %>% names(), NULL)
expect_equal(p1$facet$params$cols %>% names(), NULL)
p2 <- plot_design(des, "W2", "W1")
expect_equal(p2$labels$x, "W1")
expect_equal(p2$labels$fill, "W2")
expect_equal(p2$labels$colour, "W2")
expect_equal(p2$facet$params$rows %>% names(), NULL)
expect_equal(p2$facet$params$cols %>% names(), NULL)
p3 <- plot_design(des, "W3", "W2", "W1")
expect_equal(p3$labels$x, "W2")
expect_equal(p3$labels$fill, "W3")
expect_equal(p3$labels$colour, "W3")
expect_equal(p3$facet$params$rows %>% names(), "W1")
expect_equal(p3$facet$params$cols %>% names(), character(0))
p4 <- plot_design(des, "W4", "W3", "W2", "W1")
expect_equal(p4$labels$x, "W3")
expect_equal(p4$labels$fill, "W4")
expect_equal(p4$labels$colour, "W4")
expect_equal(p4$facet$params$rows %>% names(), "W2")
expect_equal(p4$facet$params$cols %>% names(), "W1")
p5 <- plot_design(des, "W5", "W4", "W3", "W2", "W1")
expect_equal(p5$labels$x, "W4")
expect_equal(p5$labels$fill, "W5")
expect_equal(p5$labels$colour, "W5")
expect_equal(p5$facet$params$rows %>% names(), "W3")
expect_equal(p5$facet$params$cols %>% names(), c("W2", "W1"))
})
# from design ----
test_that("from design", {
s0 <- check_design() %>% plot_design()
s1 <- check_design(2) %>% plot_design()
s2 <- check_design(c(2,2)) %>% plot_design()
s3 <- check_design(c(2,2,2)) %>% plot_design()
s4 <- check_design(c(2,2,2,2)) %>% plot_design()
s5 <- check_design(c(2,2,2,2,2)) %>% plot_design()
s6 <- check_design(c(2,2,2,2,2,2)) %>% plot_design()
expect_equal(s0$labels$x, "value")
expect_equal(s0$labels$y, "value")
expect_equal(s0$labels$fill, "fill")
expect_equal(s0$labels$colour, "colour")
expect_equal(s0$facet$params, list())
expect_equal(s1$labels$x, "W1")
expect_equal(s1$labels$y, "value")
expect_equal(s1$labels$fill, "W1")
expect_equal(s1$labels$colour, "W1")
expect_equal(s1$facet$params, list())
expect_equal(s2$labels$x, "W2")
expect_equal(s2$labels$y, "value")
expect_equal(s2$labels$fill, "W1")
expect_equal(s2$labels$colour, "W1")
expect_equal(s2$facet$params, list())
expect_equal(s3$labels$x, "W2")
expect_equal(s3$labels$y, "value")
expect_equal(s3$labels$fill, "W1")
expect_equal(s3$labels$colour, "W1")
expect_equal(s3$facet$params$rows %>% names(), c("W3"))
expect_equal(s3$facet$params$cols %>% names(), character(0))
expect_equal(s4$labels$x, "W2")
expect_equal(s4$labels$y, "value")
expect_equal(s4$labels$fill, "W1")
expect_equal(s4$labels$colour, "W1")
expect_equal(s4$facet$params$rows %>% names(), c("W3"))
expect_equal(s4$facet$params$cols %>% names(), c("W4"))
expect_equal(s5$labels$x, "W2")
expect_equal(s5$labels$y, "value")
expect_equal(s5$labels$fill, "W1")
expect_equal(s5$labels$colour, "W1")
expect_equal(s5$facet$params$rows %>% names(), c("W3"))
expect_equal(s5$facet$params$cols %>% names(), c("W4", "W5"))
expect_equal(s6$labels$x, "W2")
expect_equal(s6$labels$y, "value")
expect_equal(s6$labels$fill, "W1")
expect_equal(s6$labels$colour, "W1")
expect_equal(s6$facet$params$rows %>% names(), c("W3", "W4"))
expect_equal(s6$facet$params$cols %>% names(), c("W5", "W6"))
})
# from data ----
test_that("from data", {
s0 <- sim_design() %>% plot_design()
s1 <- sim_design(2) %>% plot_design()
s2 <- sim_design(c(2,2)) %>% plot_design()
s3 <- sim_design(c(2,2,2)) %>% plot_design()
s4 <- sim_design(c(2,2,2,2)) %>% plot_design()
s5 <- sim_design(c(2,2,2,2,2)) %>% plot_design()
s6 <- sim_design(c(2,2,2,2,2,2)) %>% plot_design()
expect_equal(s0$labels$x, "value")
expect_equal(s0$labels$y, "value")
expect_equal(s0$labels$fill, "fill")
expect_equal(s0$labels$colour, "colour")
expect_equal(s0$facet$params, list())
expect_equal(s1$labels$x, "W1")
expect_equal(s1$labels$y, "value")
expect_equal(s1$labels$fill, "W1")
expect_equal(s1$labels$colour, "W1")
expect_equal(s1$facet$params, list())
expect_equal(s2$labels$x, "W2")
expect_equal(s2$labels$y, "value")
expect_equal(s2$labels$fill, "W1")
expect_equal(s2$labels$colour, "W1")
expect_equal(s2$facet$params, list())
expect_equal(s3$labels$x, "W2")
expect_equal(s3$labels$y, "value")
expect_equal(s3$labels$fill, "W1")
expect_equal(s3$labels$colour, "W1")
expect_equal(s3$facet$params$rows %>% names(), c("W3"))
expect_equal(s3$facet$params$cols %>% names(), character(0))
expect_equal(s4$labels$x, "W2")
expect_equal(s4$labels$y, "value")
expect_equal(s4$labels$fill, "W1")
expect_equal(s4$labels$colour, "W1")
expect_equal(s4$facet$params$rows %>% names(), c("W3"))
expect_equal(s4$facet$params$cols %>% names(), c("W4"))
expect_equal(s5$labels$x, "W2")
expect_equal(s5$labels$y, "value")
expect_equal(s5$labels$fill, "W1")
expect_equal(s5$labels$colour, "W1")
expect_equal(s5$facet$params$rows %>% names(), c("W3"))
expect_equal(s5$facet$params$cols %>% names(), c("W4", "W5"))
expect_equal(s6$labels$x, "W2")
expect_equal(s6$labels$y, "value")
expect_equal(s6$labels$fill, "W1")
expect_equal(s6$labels$colour, "W1")
expect_equal(s6$facet$params$rows %>% names(), c("W3", "W4"))
expect_equal(s6$facet$params$cols %>% names(), c("W5", "W6"))
})
# 2w ----
test_that("2w", {
within <- list(time = c(day = "Tested during the day",
night = "Tested at night"))
between <- list()
mu <- c(1,2)
dv = "rt"
id = "sub_id"
d <- sim_design(within, between, mu = mu, dv = dv, id = id, long = TRUE)
p <- plot_design(d)
expect_equal(class(p), c("gg", "ggplot"))
expect_equal(p$labels$x, "time")
expect_equal(p$labels$y, "rt")
expect_equal(p$labels$fill, "time")
expect_equal(p$labels$colour, "time")
})
# 2w*2b ----
test_that("2w*2b", {
within <- list(time = c("day", "night"))
between <- list(pet = c("dog", "cat"))
mu <- list(dog = 1:2, cat = 3:4)
p <- check_design(within, between, mu = mu, plot = 0) %>%
plot_design()
expect_equal(class(p), c("gg", "ggplot"))
# axis labels
within <- list(time = c(day = "Tested during the day",
night = "Tested at night"))
between <- list(pet = c(dog = "Has a dog", cat = "Has a cat"))
mu <- list(
dog = c(1,2),
cat = c(3,4)
)
d <- sim_design(within, between, mu = mu, long = TRUE)
p <- plot_design(d)
expect_equal(class(p), c("gg", "ggplot"))
expect_equal(p$labels$x, "pet")
expect_equal(p$labels$y, "value")
expect_equal(p$labels$fill, "time")
expect_equal(p$labels$colour, "time")
})
# 2w*2w*2b ----
test_that("2w*2w*2b", {
within <- list(time = c("day", "night"), condition = c("A", "B"))
between <- list(pet = c("dog", "cat"))
mu <- list(dog = 1:4, cat = 2:5)
p <- check_design(within, between, mu = mu) %>%
plot_design()
expect_equal(class(p), c("gg", "ggplot"))
expect_equal(p$labels$x, "condition")
expect_equal(p$labels$y, "value")
expect_equal(p$labels$fill, "time")
expect_equal(p$labels$colour, "time")
})
# 2w*2w*2b*2b ----
test_that("2w*2w*2b*2b", {
within <- list(pet = c("ferret", "dog", "cat"), condition = c("A", "B"))
between <- list(time = c("night", "day"), age = c("old", "young"))
mu <- list(night_old = 1:6,
day_old = 2:7,
night_young = 3:8,
day_young = 4:9)
design <- check_design(within, between, mu = mu)
p <- plot_design(design)
expect_equal(class(p), c("gg", "ggplot"))
expect_equal(names(p$facet$params$rows), "time")
expect_equal(names(p$facet$params$cols), "age")
expect_equal(p$labels$x, "condition")
expect_equal(p$labels$y, "value")
expect_equal(p$labels$fill, "pet")
expect_equal(p$labels$colour, "pet")
})
# geoms ----
test_that("geoms", {
dat <- sim_design(c(2,2,2,2), n = 25, sd = 5,
mu = 1:16)
default <- plot_design(dat)
manual <- plot_design(dat, geoms = c("violin", "box"))
#expect_equal(default, manual)
v <- plot_design(dat, geoms = "violin")
b <- plot_design(dat, geoms = "box")
sd <- plot_design(dat, geoms = "pointrangeSD")
se <- plot_design(dat, geoms = "pointrangeSE")
j <- plot_design(dat, geoms = "jitter")
v_class <- v$layers[[1]]$geom %>% class()
b_class <- b$layers[[1]]$geom %>% class()
sd_class <- sd$layers[[1]]$geom %>% class()
se_class <- se$layers[[1]]$geom %>% class()
j_class <- j$layers[[1]]$geom %>% class()
expect_equal(v_class[[1]], "GeomViolin")
expect_equal(b_class[[1]], "GeomBoxplot")
expect_equal(sd_class[[1]], "GeomPointrange")
expect_equal(se_class[[1]], "GeomPointrange")
expect_equal(j_class[[1]], "GeomPoint")
v_sd <- plot_design(dat, geoms = c("violin", "pointrangeSD"))
v_sd1 <- v_sd$layers[[1]]$geom %>% class()
v_sd2 <- v_sd$layers[[2]]$geom %>% class()
expect_equal(v_sd1[1], "GeomViolin")
expect_equal(v_sd2[1], "GeomPointrange")
# only does one of pointrange - should default to SD
se_sd <- plot_design(dat, geoms = c("pointrangeSE", "pointrangeSD"))
sd_se <- plot_design(dat, geoms = c("pointrangeSD", "pointrangeSE"))
expect_equal(length(se_sd$layers), 1)
expect_equal(length(sd_se$layers), 1)
# get rid of plot_env$geoms to compare
se_sd$plot_env$geoms <- NULL
sd_se$plot_env$geoms <- NULL
sd$plot_env$geoms <- NULL
skip_on_cran()
expect_true(all.equal.function(se_sd, sd_se))
expect_true(all.equal.function(sd, sd_se))
})
# S3 functions ----
test_that("S3 functions", {
des <- check_design()
dat <- sim_design()
p_des <- plot(des)$layers[[1]]$geom %>% class()
p_dat <- plot(dat)$layers[[1]]$geom %>% class()
expect_equal(p_des[1], "GeomPointrange")
expect_equal(p_dat[1], "GeomViolin")
p_des <- plot(des, geoms=c("jitter", "violin"))$layers[[1]]$geom %>% class()
p_dat <- plot(dat, geoms=c("jitter", "violin"))$layers[[1]]$geom %>% class()
expect_equal(p_des[1], "GeomPoint")
expect_equal(p_dat[1], "GeomPoint")
})
# reps ----
test_that("reps", {
data <- sim_design(2, 2, rep = 3)
p <- plot_design(data)
expect_equal(p$facet$params, list())
})
# vardesc ----
test_that("vardesc", {
between <- factor_maker("B")
within <- factor_maker("W")
vardesc <- vardesc_maker(c("B", "W"))
# 1 factor
p <- check_design(within, vardesc = vardesc) %>% plot_design()
expect_equal(p$labels$x, vardesc[["W"]])
# 2 factors
p <- check_design(within, between, vardesc = vardesc) %>% plot_design()
expect_equal(p$labels$x, vardesc[["B"]])
expect_equal(p$labels$colour, vardesc[["W"]])
expect_equal(p$labels$fill, vardesc[["W"]])
# 6 factors
within <- factor_maker(1:6)
vardesc <- vardesc_maker(1:6)
p <- check_design(within, vardesc = vardesc) %>% plot_design()
expect_equal(p$labels$x, vardesc[["B"]])
expect_equal(p$labels$colour, vardesc[["A"]])
expect_equal(p$labels$fill, vardesc[["A"]])
expect_equal(names(p$facet$params$rows), c("C", "D"))
expect_equal(names(p$facet$params$cols), c("E", "F"))
# check custom labeller
design <- check_design(within, vardesc = vardesc)
p_value_st <- plot_design(design, labeller = "label_value")
p_both_st <- plot_design(design, labeller = "label_both")
p_value_fu <- plot_design(design, labeller = label_value)
p_both_fu <- plot_design(design, labeller = label_both)
df <- c(design$within, design$between) %>%
`[`(LETTERS[3:6]) %>%
lapply(unlist) %>%
as.data.frame()
# or get from plot
# df <- ggplot_build(p_both_st)$layout$layout[LETTERS[3:6]]
both_labs <- LETTERS[3:6] %>%
lapply(function(x) paste0("Factor ", x, ": Level ", x , 1:2)) %>%
stats::setNames(LETTERS[3:6])
value_labs <- LETTERS[3:6] %>%
lapply(function(x) paste0("Level ", x , 1:2)) %>%
stats::setNames(LETTERS[3:6])
expect_equal(p_value_st$facet$params$labeller(df), value_labs)
expect_equal(p_both_st$facet$params$labeller(df), both_labs)
expect_equal(p_value_fu$facet$params$labeller(df), value_labs)
expect_equal(p_both_fu$facet$params$labeller(df), both_labs)
})
faux_options(plot = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.