test_scenario_function <- function(df, scenario_function, expected_value, scenario_name, ...) {
testthat::test_that(glue::glue("{scenario_function} returns appropriate results:"), {
df_add_indicator <- add_scenario_indicator(df,
indicator = "adult_obese",
scenario_function = scenario_function,
scenario_name = scenario_name,
start_scenario_last_default = FALSE,
expend_bau = FALSE,
...
)
df_adult_obese_halt_rise_2025 <- df_add_indicator %>%
dplyr::filter(scenario == scenario_name, year == 2025) %>%
dplyr::pull(value)
testthat::expect_equal(df_adult_obese_halt_rise_2025, expected_value)
df_add_scenario_hpop <- add_scenario(df,
scenario_function = scenario_function,
scenario_name = scenario_name,
start_scenario_last_default = FALSE,
expend_bau = FALSE,
...
)
testthat::expect_equal(df_add_scenario_hpop, df_add_indicator)
})
}
df <- tibble::tibble(
value = 80:100,
year = 2010:2030,
ind = "adult_obese",
iso3 = "testalia",
scenario = "default",
source = NA_character_,
type = ifelse(.data[["year"]] <= 2021, "reported", "projected")
)
test_scenario_function(df, "halt_rise", 80, baseline_year = 2010, scenario_name = "halt_rise")
test_scenario_function(df, "aroc", 95.329345, aroc_type = "latest", scenario_name = "aroc_latest", keep_better_values = FALSE)
test_scenario_function(df, "percent_baseline", 100, percent_change = 40, scenario_name = glue::glue("40_2018"))
test_scenario_function(df, "linear_change", 95, linear_value = 1, scenario_name = "linear_change")
df_linear_col <- df %>%
dplyr::mutate(linear_value = 1)
test_scenario_function(df_linear_col, "linear_change_col", 95, scenario_name = "linear_change", linear_value_col = "linear_value")
test_scenario_function(df, "quantile", 95, n = 5, scenario_name = "quantile_5")
test_scenario_function(df, "best_in_region", 95, scenario_name = "best_in_region")
test_scenario_function(df, "fixed_target", 70, target_value = 70, scenario_name = "70_2025")
df_fixed_target_col <- df %>%
dplyr::mutate(target = 70)
test_scenario_function(df = df_fixed_target_col, "fixed_target_col", 70, target_col = "target", scenario_name = "target_2025")
df_type_col <- df %>%
dplyr::mutate(type = dplyr::case_when(
year >= 2021 ~ "projected",
TRUE ~ "reported"
))
# test_scenario_function(df_type_col, "covid_rapid_return", 94.090909, baseline_year = 2010, scenario_name = "covid_rapid_return")
#
# test_scenario_function(df_type_col, "covid_never_return", 90, baseline_year = 2010, scenario_name = "covid_never_return")
test_scenario_function(df_type_col, "covid_delayed_return", 93.068182, baseline_year = 2010, scenario_name = "covid_delayed_return")
test_scenario_function(df_type_col, "covid_sustained_disruption", 94.090909, baseline_year = 2010, scenario_name = "covid_sustained_disruption")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.