Przeglądaj źródła

Ensure precedence of options and add tests

pkg-add-anim-opts-fixed
Garrick Aden-Buie 7 lat temu
rodzic
commit
4020070096
2 zmienionych plików z 31 dodań i 2 usunięć
  1. +9
    -1
      R/animate_options.R
  2. +22
    -1
      tests/testthat/test-anim_options.R

+ 9
- 1
R/animate_options.R Wyświetl plik

@@ -148,7 +148,15 @@ default_anim_opts <- function(family, ao_custom = NULL) {
ease_other = list(y = "cubic-out", x = "cubic-in")),
anim_options()
)
if (is.null(ao_custom)) ao_default else merge(ao_custom, ao_default)
if (is.null(ao_custom)) {
# User set globals override defaults
ao_custom <- get_anim_opt()
} else {
# Opts from function call override user-set globals
ao_custom <- merge(ao_custom, get_anim_opt())
}
# function > user-set global > default (> global default)
if (!is.null(ao_custom)) merge(ao_custom, ao_default) else ao_default
}

# Font Size Setters and Getters -------------------------------------------

+ 22
- 1
tests/testthat/test-anim_options.R Wyświetl plik

@@ -19,10 +19,31 @@ test_that("setting and getting animation options works", {
expect_equal(get_anim_opt("state_length"), 1)
expect_equal(get_anim_opt(), anim_options(2, 1, text_size = 5, title_size = 10))

anim_options_set(anim_options())
anim_options_set()
expect_equal(get_anim_opt("transition_length"), plot_settings$default$transition_length)

anim_options_set(anim_options(enter = enter_appear(early = TRUE)))
expect_equal(names(get_anim_opt("enter")), "enter_appear(early = TRUE)")
expect_s3_class(get_anim_opt("enter")[[1]], "ggproto")

anim_options_set()
})

test_that("precedence: function > user-set global > default (> global default)", {
ao_function <- anim_options(ease_default = "linear")
ao_global <- anim_options(ease_default = "cubic", text_family = "Arial")
expect_equal(default_anim_opts("gather", ao_function)$ease_default, "linear")

anim_options_set(ao_global)
expect_equal(default_anim_opts("gather")$ease_default, "cubic")
expect_equal(default_anim_opts("gather", ao_function)$ease_default, "linear")

ao_default <- default_anim_opts("gather", ao_function) # inside animate_ function
ao_final <- validate_anim_opts(ao_default) # just before animate_plot() or static_plot()
expect_equal(ao_final$ease_default, "linear")
expect_equal(ao_final$text_family, "Arial")
expect_equivalent(names(ao_final$ease_other), c("y", "x"))
expect_equal(ao_final$title_family, plot_settings$default$title_family)

anim_options_set()
})

Ładowanie…
Anuluj
Zapisz