tests/testthat/test-set_scenario_period.R

# work around to ensure the package can read in the data
# needs to be saved in the inst folder
path <- system.file("testdata", "three1", package = "mm.reoptimise")
scenario_list <- create_scenario_list(path)

# before run optimisataion  -------------------------------------
scenario <- scenario_list[[1]]
scenario <- set_scenario_period(scenario, period = get_scenario_period(scenario)[1])

test_that("function returns correctly", {

      expect_equal(class(scenario), "list")
      expect_equal(class(scenario$curves_filtered)[1], "tbl_df")
      expect_equal(scenario$curves_filtered %>% dplyr::pull(period_level1) %>% unique(), get_scenario_period(scenario)[1])

})

# after run optimisatation  -------------------------------------
path <- system.file("testdata", "three1", "scenario_0", package = "mm.reoptimise")
scenario <- create_scenario(path)

period <- get_scenario_period(scenario, type = "all")
kpi1 <- get_scenario_kpi1(scenario, period[1])
kpi2 <- get_scenario_kpi2(scenario, period[1], kpi1[1])
kpi3 <- get_scenario_kpi3(scenario, period[1], kpi1[1], kpi2[1])
val <- NA
scenario <- set_scenario(scenario, period[1], budget = val, kpi1[2], kpi2[1], kpi3[1])
scenario <- run_optimization(
   scenario = scenario)

scenario <- set_scenario_period(scenario, period = get_scenario_period(scenario)[1])

test_that("function returns correctly", {

   expect_equal(class(scenario), "list")
   expect_equal(class(scenario$curves_filtered)[1], "tbl_df")
   expect_equal(scenario$curves_filtered %>% dplyr::pull(period_level1) %>% unique(), get_scenario_period(scenario)[1])

})

# loading a preran scenario ----------------------------------------------

path <- system.file("testdata", "three1", "scenario_1", package = "mm.reoptimise")
scenario <- create_scenario(path)

scenario <- set_scenario_period(scenario, period = get_scenario_period(scenario, type = "all")[1])

test_that("function returns correctly", {

   expect_equal(class(scenario), "list")
   expect_equal(class(scenario$curves_filtered)[1], "tbl_df")
   expect_equal(scenario$curves_filtered %>%
                   dplyr::pull(period_level1) %>%
                   unique(), get_scenario_period(scenario, type = "all")[1])

})
cath-parkinson/mm.reoptimise documentation built on May 12, 2022, 3:34 p.m.