context("test-anim_options") test_that("merging of animation options works", { ao_new <- anim_options(5, 3, text_size = 9, title_size = 13) ao_old <- anim_options(ease_default = "cubic-in", text_family = "Times New Roman") ao_merged <- anim_options(5, 3, "cubic-in", text_size = 9, title_size = 13, text_family = "Times New Roman") expect_equal(merge(ao_new, ao_old), ao_merged) }) test_that("setting and getting animation options works", { set_font_size(5, 10) expect_equal(get_anim_opt(), anim_options(text_size = 5, title_size = 10)) expect_error(get_anim_opt("text_size")) expect_equal(get_text_size(), get_anim_opt()$text_size) expect_equal(get_title_size(), get_anim_opt()$title_size) anim_options_set(anim_options(2, 1)) expect_equal(get_anim_opt("transition_length"), 2) 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() 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() })