Nothing
context("function-args")
filter_args <- function(x) {
all_names <- names(x)
all_names <- setdiff(all_names, c("self", "data", "scales", "coordinates", "..."))
x[all_names]
}
test_that("geom_xxx and GeomXxx$draw arg defaults match", {
animint2_ns <- asNamespace("animint2")
objs <- ls(animint2_ns)
geom_fun_names <- objs[grepl("^(geom|annotation)_", objs)]
# These aren't actually geoms, or need special parameters and can't be tested this way.
geom_fun_names <- setdiff(
geom_fun_names,
c("geom_aesthetics", "geom_map", "annotation_custom", "annotation_map",
"annotation_raster", "annotation_id")
)
# For each geom_xxx function and the corresponding GeomXxx$draw and
# GeomXxx$draw_groups functions, make sure that if they have same args, that
# the args have the same default values.
lapply(geom_fun_names, function(geom_fun_name) {
geom_fun <- animint2_ns[[geom_fun_name]]
draw <- geom_fun()$geom$draw_layer
draw_groups <- geom_fun()$geom$draw_group
fun_args <- formals(geom_fun)
draw_args <- c(gganimintproto_formals(draw), gganimintproto_formals(draw_groups))
draw_args <- filter_args(draw_args)
common_names <- intersect(names(fun_args), names(draw_args))
expect_identical(fun_args[common_names], draw_args[common_names],
info = paste0("Mismatch between arg defaults for ", geom_fun_name,
" and ", class(geom_fun()$geom)[1], "'s $draw and/or $draw_group functions.")
)
})
})
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.