Nothing
context("Function createArea")
sapply(studies, function(study) {
setup_study(study, sourcedir)
opts <- antaresRead::setSimulationPath(studyPath, 1)
test_that("Cannot initialize a new area if not in 'Input' mode", {
expect_error(createArea(name = "myarea"))
})
# set simulation path in mode input
opts <- antaresRead::setSimulationPath(studyPath, 'input')
test_that("Backup study/input", {
backupStudy(what = "study", extension = ".zip")
backupStudy(what = "input", extension = ".tar.gz")
expect_true(file.exists(paste0(opts$studyPath, ".zip")))
expect_true(file.exists(paste0(opts$inputPath, ".tar.gz")))
})
test_that("Initialize a new area", {
n_before <- length(getOption("antares")$areaList)
createArea(name = "myarea")
n_after <- length(getOption("antares")$areaList)
expect_equal(n_before + 1, n_after)
expect_true("myarea" %in% getOption("antares")$areaList)
})
test_that("nodal optimization options are properly written", {
createArea(
name = "testarea",
nodalOptimization = nodalOptimizationOptions(
non_dispatchable_power = FALSE,
dispatchable_hydro_power = TRUE,
other_dispatchable_power = FALSE,
spread_unsupplied_energy_cost = 10,
spread_spilled_energy_cost = 3.14,
average_unsupplied_energy_cost = 239,
average_spilled_energy_cost = 1000
)
)
optim_testarea <- readIniFile(file.path(opts$inputPath, "areas", "testarea", "optimization.ini"))
expect_equal(optim_testarea$`nodal optimization`$`dispatchable-hydro-power`, TRUE)
expect_equal(optim_testarea$`nodal optimization`$`spread-unsupplied-energy-cost`, 10)
expect_equal(optim_testarea$`nodal optimization`$`non-dispatchable-power`, FALSE)
expect_equal(optim_testarea$`nodal optimization`$`other-dispatchable-power`, FALSE)
expect_equal(optim_testarea$`nodal optimization`$`spread-spilled-energy-cost`, 3.14)
thermal_areas <- readIniFile(file.path(opts$inputPath, "thermal", "areas.ini"))
expect_equal(thermal_areas$spilledenergycost$testarea, 1000)
expect_equal(thermal_areas$unserverdenergycost$testarea, 239)
})
# Initialize hydro.ini values for a new area
test_that("Check if hydro.ini default values are initialized when creating an area", {
default_hydro_params <- get_default_hydro_ini_values()
hydro_ini_path <- file.path("input", "hydro", "hydro.ini")
hydro_ini_data <- readIni(pathIni = hydro_ini_path, opts = opts)
new_area <- "area_check_hydro"
createArea(new_area)
hydro_ini_data_after_area_creation <- readIni(pathIni = hydro_ini_path, opts = opts)
# Check if each section is in the hydro.ini file
name_ref <- setdiff(names(default_hydro_params), "reservoir capacity")
name_ref <- name_ref[order(name_ref)]
name_ <- names(hydro_ini_data_after_area_creation)
name_ <- name_[order(name_)]
expect_equal(name_, name_ref)
# Check if new_area has an entry for each section
check_by_section <- sapply(names(hydro_ini_data_after_area_creation),
FUN = function(name) new_area %in% names(hydro_ini_data_after_area_creation[[name]])
)
expect_true(all(check_by_section))
# Check if the value for new_area is the default value
value_by_section <- sapply(names(hydro_ini_data_after_area_creation),
FUN = function(name) hydro_ini_data_after_area_creation[[name]][[new_area]],
simplify = FALSE
)
for(key in name_ref){
expect_equal(default_hydro_params[[key]], value_by_section[[key]])
}
})
test_that("Remove an area", {
area2remove <- "myareatoremove"
createArea(name = area2remove)
ra <- checkRemovedArea(area = area2remove)
expect_true(length(ra$areaResiduFiles) > 0)
expect_true(length(ra$areaResidus) > 0)
removeArea(name = area2remove)
ra <- checkRemovedArea(area = area2remove)
expect_length(ra$areaResiduFiles, 0)
expect_length(ra$areaResidus, 0)
})
# remove temporary study
unlink(x = file.path(pathstd, "test_case"), recursive = TRUE)
})
test_that("adequacy patch options are properly written", {
tmp <- tempfile()
suppressWarnings({
createStudy(path = tmp, antares_version = "8.3.0")
opts <- antaresRead::setSimulationPath(tmp)
})
#activateRES(quietly = TRUE)
createArea(
name = "testarea_adq",
adequacy = adequacyOptions(
adequacy_patch_mode = "inside"
)
)
adq_testarea <- readIniFile(file.path(opts$inputPath, "areas", "testarea_adq", "adequacy_patch.ini"))
expect_equal(adq_testarea$`adequacy-patch`$`adequacy-patch-mode`, "inside")
unlink(tmp, recursive = TRUE)
})
# v860 ----
test_that("create area / st-storage in 8.6.0", {
tmp <- tempfile()
suppressWarnings({
temp_study_860 <- createStudy(path = tmp, antares_version = "8.6.0")
opts <- antaresRead::setSimulationPath(tmp)
})
# check area
createArea(name = "myarea",
opts = temp_study_860)
areas_created <- getAreas()
expect_true("myarea" %in% areas_created)
expect_true(dir.exists(file.path(tmp,"input","st-storage","clusters","myarea")))
# check ini file
ini_path_file <- file.path(temp_study_860$inputPath,
"st-storage","clusters","myarea", "list.ini")
expect_true(file.exists(ini_path_file))
# check mingen.txt file (hydro)
mingen_path_file <- file.path(temp_study_860$inputPath,
"hydro", "series","myarea", "mingen.txt")
expect_true(file.exists(mingen_path_file))
# REMOVE TESTS
test_that("Remove an area in 8.6.0", {
area2remove <- "myareatoremove"
createArea(name = area2remove,
opts = temp_study_860)
ra <- checkRemovedArea(area = area2remove)
expect_true(length(ra$areaResiduFiles) > 0)
expect_true(length(ra$areaResidus) > 0)
removeArea(name = area2remove)
ra <- checkRemovedArea(area = area2remove)
expect_length(ra$areaResiduFiles, 0)
expect_length(ra$areaResidus, 0)
expect_equal(getAreas(select = area2remove), character(0))
})
# remove temp study
unlink(tmp, recursive = TRUE)
})
test_that("removeArea() in 8.2.0 : check that properties.ini are all there", {
## V8
ant_version <- "8.2.0"
st_test <- paste0("my_study_820_", paste0(sample(letters,5),collapse = ""))
suppressWarnings(opts <- createStudy(path = pathstd, study_name = st_test, antares_version = ant_version))
# prop is taken cause it is a substring included in the char properties.ini
area <- "prop"
area2 <- "zone51"
area3 <- "zone52"
createArea(name = area, opts = opts)
createArea(name = area2, opts = opts)
createArea(name = area3, opts = opts)
suppressWarnings(opts <- setSimulationPath(opts$studyPath, simulation = "input"))
createLink(from = area, to = area2, opts = opts)
createLink(from = area, to = area3, opts = opts)
createLink(from = area2, to = area3, opts = opts)
opts <- setSimulationPath(opts$studyPath, simulation = "input")
removeArea(name = area, opts = opts)
links_path <- file.path(opts$inputPath, "links")
dirs_links <- list.dirs(path = links_path, full.names = TRUE, recursive = FALSE)
files_properties <- list.files(path = links_path, full.names = TRUE, recursive = TRUE, pattern = "properties.ini$")
expect_true(length(dirs_links) == length(files_properties))
expect_true(all(file.exists(file.path(dirs_links, "properties.ini"))))
unlink(opts$studyPath, recursive = TRUE)
## V7
ant_version <- "7.1.0"
st_test <- paste0("my_study_710_", paste0(sample(letters,5),collapse = ""))
suppressWarnings(opts <- createStudy(path = pathstd, study_name = st_test, antares_version = ant_version))
# prop is taken cause it is a substring included in the char properties.ini
area <- "prop"
area2 <- "zone51"
area3 <- "zone52"
createArea(name = area, opts = opts)
createArea(name = area2, opts = opts)
createArea(name = area3, opts = opts)
suppressWarnings(opts <- setSimulationPath(opts$studyPath, simulation = "input"))
createLink(from = area, to = area2, opts = opts)
createLink(from = area, to = area3, opts = opts)
createLink(from = area2, to = area3, opts = opts)
opts <- setSimulationPath(opts$studyPath, simulation = "input")
removeArea(name = area, opts = opts)
links_path <- file.path(opts$inputPath, "links")
dirs_links <- list.dirs(path = links_path, full.names = TRUE, recursive = FALSE)
files_properties <- list.files(path = links_path, full.names = TRUE, recursive = TRUE, pattern = "properties.ini$")
expect_true(length(dirs_links) == length(files_properties))
expect_true(all(file.exists(file.path(dirs_links, "properties.ini"))))
unlink(opts$studyPath, recursive = TRUE)
})
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.