Commit f9554d8d authored by Dorchies David's avatar Dorchies David
Browse files

fix: Error on RunModel(FUNMOD=RunModel_Lag)

Refs #108
Showing with 19 additions and 5 deletions
+19 -5
RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD) { RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD, ...) {
FUN_MOD <- match.fun(FUN_MOD) FUN_MOD <- match.fun(FUN_MOD)
if (inherits(InputsModel, "SD")) { if (inherits(InputsModel, "SD") && !identical(FUN_MOD, RunModel_Lag)) {
# Lag model take one parameter at the beginning of the vector # Lag model take one parameter at the beginning of the vector
iFirstParamRunOffModel <- 2 iFirstParamRunOffModel <- 2
} else { } else {
...@@ -11,9 +11,9 @@ RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD) { ...@@ -11,9 +11,9 @@ RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD) {
} }
OutputsModel <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, OutputsModel <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions,
Param = Param[iFirstParamRunOffModel:length(Param)]) Param = Param[iFirstParamRunOffModel:length(Param)], ...)
if (inherits(InputsModel, "SD")) { if (inherits(InputsModel, "SD") && !identical(FUN_MOD, RunModel_Lag)) {
OutputsModel <- RunModel_Lag(InputsModel, RunOptions, Param[1], OutputsModel) OutputsModel <- RunModel_Lag(InputsModel, RunOptions, Param[1], OutputsModel)
} }
return(OutputsModel) return(OutputsModel)
......
...@@ -79,6 +79,20 @@ test_that("'QcontribDown$Qim' should have the same lenght as 'RunOptions$IndPeri ...@@ -79,6 +79,20 @@ test_that("'QcontribDown$Qim' should have the same lenght as 'RunOptions$IndPeri
) )
}) })
test_that("RunModel(FUN=RunModel_Lag) should give same result as RunModel_Lag", {
QcontribDown <- OutputsGR4JOnly
Output_RunModel_Lag <- RunModel_Lag(InputsModel = InputsModel,
RunOptions = RunOptions,
Param = 1,
QcontribDown = QcontribDown)
Output_RunModel <- RunModel(InputsModel = InputsModel,
RunOptions = RunOptions,
Param = 1,
FUN_MOD = RunModel_Lag,
QcontribDown = QcontribDown)
expect_equal(Output_RunModel, Output_RunModel_Lag)
})
test_that("'Qupstream' contain NA values", { test_that("'Qupstream' contain NA values", {
expect_warning( expect_warning(
InputsModel <- CreateInputsModel( InputsModel <- CreateInputsModel(
...@@ -97,7 +111,7 @@ test_that("'Qupstream' contain NA values", { ...@@ -97,7 +111,7 @@ test_that("'Qupstream' contain NA values", {
InputsModel = InputsModel, InputsModel = InputsModel,
IndPeriod_Run = Ind_Run)) IndPeriod_Run = Ind_Run))
QcontribDown <- OutputsGR4JOnly QcontribDown <- OutputsGR4JOnly
# Warning with RunModel # Warning with RunModel_Lag
expect_warning( expect_warning(
RunModel_Lag(InputsModel = InputsModel, RunOptions = RunOptions, Param = 1, QcontribDown = QcontribDown), RunModel_Lag(InputsModel = InputsModel, RunOptions = RunOptions, Param = 1, QcontribDown = QcontribDown),
regexp = "time steps with NA values" regexp = "time steps with NA values"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment