context("Function createPSP") sapply(studies, function(study) { setup_study(study, sourcedir) opts <- antaresRead::setSimulationPath(studyPath, "input") test_that("Create a new weekly PSP ", { pspData<-data.frame(area=c("a", "b"), installedCapacity=c(800,900)) opts <- antaresRead::setSimulationPath(studyPath, 'input') createPSP(areasAndCapacities=pspData, efficiency = 0.8, opts = opts) expect_true("psp_in_w" %in% antaresRead::getAreas()) expect_true("psp_out_w" %in% antaresRead::getAreas()) expect_true("a - psp_in_w" %in% antaresRead::getLinks()) expect_true("a - psp_out_w" %in% antaresRead::getLinks()) opts <- antaresRead::setSimulationPath(studyPath, 'input') capaPSP<-readInputTS(linkCapacity = "a - psp_out_w", showProgress = FALSE, opts = opts) expect_equal(unique(capaPSP$transCapacityIndirect), 800) expect_equal(unique(capaPSP$hurdlesCostIndirect), 0.0005) opts <- antaresRead::setSimulationPath(studyPath, 'input') binding<-readBindingConstraints(opts = opts) #for R CMD Check if (is.na(binding$a_psp_weekly$coefs["a%psp_in_w"])){ efficiencyTest<-as.double(binding$a_psp_weekly$coefs["psp_in_w%a"]) } else{ efficiencyTest<-as.double(binding$a_psp_weekly$coefs["a%psp_in_w"]) } expect_equal(efficiencyTest, 0.8) expect_equal(binding$a_psp_weekly$operator, "equal") expect_equal(binding$a_psp_weekly$timeStep, "weekly") expect_equal(binding$a_psp_weekly$enabled, TRUE) }) test_that("Overwrite a PSP ",{ pspData<-data.frame(area=c("a", "b"), installedCapacity = c(800, 900)) createPSP(pspData, efficiency = 0.75, overwrite = TRUE, hurdleCost = 0.1, opts = opts) opts <- antaresRead::setSimulationPath(studyPath, 'input') capaPSP<-readInputTS(linkCapacity = "a - psp_out_w", showProgress = FALSE, opts = opts) expect_equal(unique(capaPSP$hurdlesCostIndirect), 0.1) opts <- antaresRead::setSimulationPath(studyPath, 'input') binding<-readBindingConstraints(opts = opts) efficiencyTest<-as.double(as.double(binding$a_psp_weekly$coefs["a%psp_in_w"])+as.double(binding$a_psp_weekly$coefs["psp_in_w%a"])) #for R CMD Check if (is.na(binding$a_psp_weekly$coefs["a%psp_in_w"])){ efficiencyTest<-as.double(binding$a_psp_weekly$coefs["psp_in_w%a"]) } else{ efficiencyTest<-as.double(binding$a_psp_weekly$coefs["a%psp_in_w"]) } expect_equal(efficiencyTest, 0.75) }) test_that(" create a daily PSP ", { pspData<-data.frame(area=c("a", "b"), installedCapacity=c(600,523)) createPSP(pspData, efficiency = 0.66, timeStepBindConstraint = "daily", hurdleCost = 5) expect_true("psp_in_d" %in% antaresRead::getAreas()) expect_true("psp_out_d" %in% antaresRead::getAreas()) expect_true("b - psp_in_d" %in% antaresRead::getLinks()) expect_true("b - psp_out_d" %in% antaresRead::getLinks()) capaPSP<-readInputTS(linkCapacity = "b - psp_out_d", showProgress = FALSE) expect_equal(unique(capaPSP$transCapacityIndirect), 523) expect_equal(unique(capaPSP$hurdlesCostIndirect), 5) binding<-readBindingConstraints() #for R CMD Check if (is.na(binding$b_psp_daily$coefs["b%psp_in_d"])){ efficiencyTest<-as.double(binding$b_psp_daily$coefs["psp_in_d%b"]) } else{ efficiencyTest<-as.double(binding$b_psp_daily$coefs["b%psp_in_d"]) } expect_equal(efficiencyTest, 0.66) expect_equal(binding$b_psp_daily$operator, "equal") expect_equal(binding$b_psp_daily$timeStep, "daily") expect_equal(binding$b_psp_daily$enabled, TRUE) }) test_that(" test incorrect data ", { pspData<-data.frame(area=c("a", "b"), installedCapacity=c(800,900)) #incorrect timeStepBindConstraint expect_error(createPSP(pspData, efficiency = 0.75, timeStepBindConstraint = "annual"), "timeStepBindConstraint is not equal to weekly or daily.") expect_error(createPSP(pspData, efficiency = 0.75, timeStepBindConstraint = 988), "timeStepBindConstraint is not equal to weekly or daily.") #incorrect efficency expect_error(createPSP(pspData), "efficiency is set to NULL") expect_error(createPSP(pspData, efficiency = "Batman"), "efficiency is not a double.") #wrong pspData pspDataWrong<-data.frame(area=c("apop", "ssb"), installedCapacity=c(800,900)) expect_error(createPSP(pspDataWrong, efficiency = 0.75), "apop is not a valid area.") #incorrect pumping name expect_error(createPSP(pspData, efficiency = 0.75, namePumping = 988), "One of the pumping or turbining name is not a character.") expect_error(createPSP(pspData, efficiency = 0.75, namePumping = NULL), "One of the pumping or turbining name is set to NULL") #incorrect hurdle cost expect_error(createPSP(pspData, efficiency = 0.75, hurdleCost = "988"), "hurdleCost is not a double.") #incorrect areasAndCapacities expect_error(createPSP(c(5,9), efficiency = 0.75), "areasAndCapacities must be a data.frame") expect_error(createPSP(data.frame(voiture=c(87,98)), efficiency = 0.75), "areasAndCapacities must be a data.frame with a column area") expect_error(createPSP(data.frame(area=c(87,98)), efficiency = 0.75), "areasAndCapacities must be a data.frame with a column installedCapacity") }) test_that("create a psp with a long name ", { #after p, we change the link direction areaName<-"suisse" createArea(areaName, overwrite = TRUE) pspData<-data.frame(area=c(areaName), installedCapacity=c(9856)) createPSP(pspData, efficiency = 0.5, overwrite = TRUE, timeStepBindConstraint = "daily") expect_true("psp_in_d" %in% antaresRead::getAreas()) expect_true("psp_out_d" %in% antaresRead::getAreas()) expect_true("psp_in_d - suisse" %in% antaresRead::getLinks()) expect_true("psp_out_d - suisse" %in% antaresRead::getLinks()) capaPSP<-readInputTS(linkCapacity = "psp_out_d - suisse", showProgress = FALSE) expect_equal(unique(capaPSP$transCapacityDirect), 9856) expect_equal(unique(capaPSP$hurdlesCostIndirect), 0.0005) binding<-readBindingConstraints() expect_equal(as.double(binding$suisse_psp_daily$coefs["psp_in_d%suisse"]), 0.5) expect_equal(binding$suisse_psp_daily$operator, "equal") expect_equal(binding$suisse_psp_daily$timeStep, "daily") expect_equal(binding$suisse_psp_daily$enabled, TRUE) }) test_that("Get and set the PSP ", { expect_error(editPSP("lp")) #after p, we change the link direction areaName<-"suisse" createArea(areaName, overwrite = TRUE) pspData<-data.frame(area=c(areaName), installedCapacity=c(9856)) opts <- antaresRead::setSimulationPath(studyPath, 'input') createPSP(pspData, efficiency = 0.5, overwrite = TRUE, timeStepBindConstraint = "daily") expect_equal(getCapacityPSP(areaName, timeStepBindConstraint = "daily"), 9856) opts <- antaresRead::setSimulationPath(studyPath, 'input') pspData<-data.frame(area=c("a", "b"), installedCapacity = c(800, 900)) createPSP(pspData, efficiency = 0.75, overwrite = TRUE, hurdleCost = 0.1, opts = opts) opts2<-editPSP("a", 8000) #ERROR in R CMD check #expect_equal(getCapacityPSP("a", opts = opts2), 8000) }) # remove temporary study unlink(x = file.path(pathstd, "test_case"), recursive = TRUE) })