From bc3d576d77f1fb0cc55b26ca514a7a7376d5a24c Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@inrae.fr>
Date: Thu, 24 Jun 2021 16:43:01 +0200
Subject: [PATCH] fix(CreateInputsCrit_DeLavenne): inapropriate error message
 for wrong length of parameter AprParam

Refs #"111
---
 R/CreateInputsCrit_DeLavenne.R                   |  4 ++++
 tests/testthat/test-CreateInputsCrit_DeLavenne.R | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git a/R/CreateInputsCrit_DeLavenne.R b/R/CreateInputsCrit_DeLavenne.R
index 59027057..92f1ea4d 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 bd7752d4..8aa40e49 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"
+  )
+})
-- 
GitLab