diff --git a/R/CreateInputsCrit_DeLavenne.R b/R/CreateInputsCrit_DeLavenne.R index 590270576f89118416b8bd694462803dfb3d8c5f..92f1ea4dca7a523502ec7c2112bf4887140bc287 100644 --- a/R/CreateInputsCrit_DeLavenne.R +++ b/R/CreateInputsCrit_DeLavenne.R @@ -26,6 +26,10 @@ CreateInputsCrit_DeLavenne <- function(FUN_CRIT = ErrorCrit_KGE, if (!is.null(epsilon) && !is.numeric(epsilon)) { stop("'epsilon' must be numeric") } + if (!is.numeric(AprParamR) || length(AprParamR) != RunOptions$FeatFUN_MOD$NbParam) { + stop("'AprParamR' must be a numeric vector of length ", + RunOptions$FeatFUN_MOD$NbParam) + } FUN_TRANSFO <- .FunTransfo(RunOptions$FeatFUN_MOD) diff --git a/tests/testthat/test-CreateInputsCrit_DeLavenne.R b/tests/testthat/test-CreateInputsCrit_DeLavenne.R index bd7752d4595fa445cd5d7747556e4abf82da3fb5..8aa40e49b9c114a3de07d85899e5f3debbb75b08 100644 --- a/tests/testthat/test-CreateInputsCrit_DeLavenne.R +++ b/tests/testthat/test-CreateInputsCrit_DeLavenne.R @@ -38,3 +38,14 @@ test_that("should return KGE*(1-k)+k with parameters matching a priori parameter ErrorCrit(IC_DL, OutputsModel)$CritValue) }) +test_that("should return proper error if mismatch number of parameters", { + expect_error( + CreateInputsCrit_DeLavenne(FUN_CRIT = ErrorCrit_KGE, + InputsModel = InputsModel, + RunOptions = RunOptions, + Obs = BasinObs$Qmm[Ind_Run], + AprParamR = Param[-1], + k = k), + regex = "'AprParamR' must be a numeric vector of length 4" + ) +})