Nothing
test_that("aes() captures input expressions", {
out <- aes(mpg, wt + 1)
expect_identical(out$x, quo(mpg))
expect_identical(out$y, quo(wt + 1))
})
test_that("aes_q() uses quoted calls and formulas", {
# Silence deprecation warning
out <- suppressWarnings(aes_q(quote(mpg), ~ wt + 1))
expect_identical(out$x, quo(mpg))
expect_identical(out$y, quo(wt + 1))
})
test_that("aes_string() parses strings", {
# Silence deprecation warning
suppressWarnings(expect_equal(aes_string("a + b")$x, quo(a + b)))
})
test_that("aes_string() doesn't parse non-strings", {
old <- options(OutDec = ",")
on.exit(options(old))
# Silence deprecation warning
suppressWarnings(expect_identical(aes_string(0.4)$x, 0.4))
})
test_that("aes_q() & aes_string() preserve explicit NULLs", {
# Silence deprecation warning
suppressWarnings(expect_equal(aes_q(NULL), aes(NULL)))
suppressWarnings(expect_equal(aes_q(x = NULL), aes(NULL)))
suppressWarnings(expect_equal(aes_q(colour = NULL), aes(colour = NULL)))
suppressWarnings(expect_equal(aes_string(NULL), aes(NULL)))
suppressWarnings(expect_equal(aes_string(x = NULL), aes(NULL)))
suppressWarnings(expect_equal(aes_string(colour = NULL), aes(colour = NULL)))
})
test_that("aes_all() converts strings into mappings", {
expect_equal(
aes_all(c("x", "y", "col", "pch")),
aes(x, y, colour = col, shape = pch),
# ignore the environments of quosures
ignore_attr = TRUE
)
})
test_that("aes evaluated in environment where plot created", {
df <- data_frame(x = 1, y = 1)
p <- ggplot(df, aes(foo, y)) + geom_point()
# Accessing an undefined variable should result in error
expect_error(layer_data(p), "'foo' not found")
# Once it's defined we should get it back
foo <- 0
expect_equal(layer_data(p)$x, 0)
# And regular variable shadowing should work
f <- function() {
foo <- 10
ggplot(df, aes(foo, y)) + geom_point()
}
expect_equal(layer_data(f())$x, 10)
})
test_that("constants are not wrapped in quosures", {
aes <- aes(1L, "foo", 1.5)
expect_identical(unclass(aes), list(x = 1L, y = "foo", 1.5))
})
test_that("assignment methods wrap symbolic objects in quosures", {
mapping <- aes(a, b, c = c)
mapping[1] <- list(quote(foo))
expect_identical(mapping[[1]], new_quosure(quote(foo), globalenv()))
mapping[[2]] <- quote(bar)
expect_identical(mapping[[2]], new_quosure(quote(bar), globalenv()))
mapping$c <- quote(baz)
expect_identical(mapping[[3]], new_quosure(quote(baz), globalenv()))
})
test_that("assignment methods pull unwrap constants from quosures", {
mapping <- aes(a, b, c = c)
mapping[1] <- list(quo("foo"))
expect_identical(mapping[[1]], "foo")
mapping[[2]] <- quo("bar")
expect_identical(mapping[[2]], "bar")
mapping$c <- quo("baz")
expect_identical(mapping[[3]], "baz")
})
test_that("quosures are squashed when creating default label for a mapping", {
p <- ggplot(mtcars) + aes(!!quo(identity(!!quo(cyl))))
expect_identical(p$labels$x, "identity(cyl)")
})
test_that("labelling doesn't cause error if aesthetic is NULL", {
p <- ggplot(mtcars) + aes(x = NULL)
expect_identical(p$labels$x, "x")
})
test_that("aes standardises aesthetic names", {
# test a few common cases
expect_identical(aes(color = x), aes(colour = x))
expect_identical(aes(pch = x), aes(shape = x))
# US to British spelling in substrings
expect_identical(aes(point_color = x), aes(point_colour = x))
expect_identical(aes(color_point = x), aes(colour_point = x))
# warning when standardisation creates duplicates
expect_warning(aes(color = x, colour = y), "Duplicated aesthetics")
})
test_that("warn_for_aes_extract_usage() warns for discouraged uses of $ and [[ within aes()", {
df <- data_frame(x = 1:5, nested_df = data_frame(x = 6:10))
expect_warning(
warn_for_aes_extract_usage(aes(df$x), df),
"Use of `df\\$x` is discouraged"
)
expect_warning(
warn_for_aes_extract_usage(aes(df[["x"]]), df),
'Use of `df\\[\\["x"\\]\\]` is discouraged'
)
# Check that rownames are ignored (#5392)
df2 <- df
rownames(df2) <- LETTERS[seq_len(nrow(df))]
expect_warning(
warn_for_aes_extract_usage(aes(df$x), df2),
"Use of `df\\$x` is discouraged"
)
})
test_that("warn_for_aes_extract_usage() does not evaluate function calls", {
df <- data_frame(x = 1:5, nested_df = data_frame(x = 6:10))
returns_df <- function() df
expect_warning(warn_for_aes_extract_usage(aes(df$x), df))
expect_silent(warn_for_aes_extract_usage(aes(returns_df()$x), df))
})
test_that("warn_for_aes_extract_usage() does not warn for valid uses of $ and [[ within aes()", {
df <- data_frame(x = 1:5, nested_df = data_frame(x = 6:10))
# use of .data
expect_silent(warn_for_aes_extract_usage(aes(.data$x), df))
expect_silent(warn_for_aes_extract_usage(aes(.data[["x"]]), df))
# use of $ for a nested data frame column
expect_silent(warn_for_aes_extract_usage(aes(nested_df$x), df))
expect_silent(warn_for_aes_extract_usage(aes(nested_df[["x"]]), df))
})
test_that("Warnings are issued when plots use discouraged extract usage within aes()", {
df <- data_frame(x = 1:3, y = 1:3)
p <- ggplot(df, aes(df$x, y)) + geom_point()
expect_warning(ggplot_build(p), "Use of `df\\$x` is discouraged")
})
test_that("aes evaluation fails with unknown input", {
expect_snapshot_error(is_calculated(environment()))
expect_snapshot_error(strip_dots(environment()))
})
test_that("aes() supports `!!!` in named arguments (#2675)", {
expect_equal(
aes(!!!list(y = 1)),
aes(y = 1)
)
expect_equal(
aes(!!!list(x = 1), !!!list(y = 2)),
aes(x = 1, y = 2)
)
expect_equal(
aes(, , !!!list(y = 1)),
aes(y = 1)
)
expect_snapshot_error(aes(y = 1, !!!list(y = 2)))
})
test_that("alternative_aes_extract_usage() can inspect the call", {
x <- quote(test[['var']])
expect_identical(alternative_aes_extract_usage(x), ".data[[\"var\"]]")
x <- quote(test$var)
expect_identical(alternative_aes_extract_usage(x), "var")
x <- quote(foo())
expect_snapshot_error(alternative_aes_extract_usage(x))
})
test_that("new_aes() checks its inputs", {
expect_snapshot_error(new_aes(1:5))
})
# Visual tests ------------------------------------------------------------
test_that("aesthetics are drawn correctly", {
dat <- data_frame(xvar = letters[1:3], yvar = 7:9)
expect_doppelganger("stat='identity'",
ggplot(dat, aes(x = xvar, y = yvar)) + geom_bar(stat = "identity")
)
expect_doppelganger("stat='identity', width=0.5",
ggplot(dat, aes(x = xvar, y = yvar)) + geom_bar(stat = "identity", width = 0.5)
)
expect_doppelganger("stat='count'",
ggplot(dat, aes(x = xvar)) + geom_bar(stat = "count")
)
expect_doppelganger("stat='count', width=0.5",
ggplot(dat, aes(x = xvar)) + geom_bar(stat = "count", width = 0.5)
)
})
test_that("alpha is drawn correctly", {
d <- data.frame(x = 1, y = 1)
expect_doppelganger("Alpha set in colour",
ggplot(d, aes(x, y)) +
geom_point(color = I("#cc000044"), size = I(50))
)
expect_doppelganger("Alpha set in alpha",
ggplot(d, aes(x, y)) +
geom_point(color = I("#cc0000"), size = I(50), alpha = I(0.27))
)
})
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.