From 0035e63cdfbd47cf7e351620d3c3cba659ba5b51 Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@inrae.fr>
Date: Wed, 24 Mar 2021 11:02:38 +0100
Subject: [PATCH] feat(Lag): allow NAs in Qupstream

- Correct bug on warning trigger in RunModel_Lag
- Add test for warning in SImulation and no warning in calibration

Refs #100
---
 R/RunModel_Lag.R                   | 2 +-
 tests/testthat/test-RunModel_Lag.R | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/R/RunModel_Lag.R b/R/RunModel_Lag.R
index e98e1b86..f1ed6a2c 100644
--- a/R/RunModel_Lag.R
+++ b/R/RunModel_Lag.R
@@ -84,7 +84,7 @@ RunModel_Lag <- function(InputsModel, RunOptions, Param) {
       Qupstream[1:LengthTs] * HUTRANS[2, upstream_basin]
   }
   # Warning for negative flows or NAs only in extended outputs
-  if(length(RunOptions$Outputs_Sim <3)) {
+  if(length(RunOptions$Outputs_Sim) > 2) {
     if (any(OutputsModel$Qsim[!is.na(OutputsModel$Qsim)] < 0)) {
       warning(length(which(OutputsModel$Qsim < 0)), " time steps with negative flow, set to zero.")
       OutputsModel$Qsim[OutputsModel$Qsim < 0] <- 0
diff --git a/tests/testthat/test-RunModel_Lag.R b/tests/testthat/test-RunModel_Lag.R
index b3eca041..0432fa09 100644
--- a/tests/testthat/test-RunModel_Lag.R
+++ b/tests/testthat/test-RunModel_Lag.R
@@ -97,11 +97,17 @@ test_that("'Qupstream' contain NA values", {
                                                   InputsModel = InputsModel,
                                                   IndPeriod_Run = Ind_Run))
   InputsModel$OutputsModel <- OutputsGR4JOnly
-
+  # Warning with RunModel
   expect_warning(
     RunModel_Lag(InputsModel = InputsModel, RunOptions = RunOptions, Param = 1),
     regexp = "time steps with NA values"
   )
+  # No warning during calibration
+  RunOptions$Outputs_Sim <- RunOptions$Outputs_Cal
+  expect_warning(
+    RunModel_Lag(InputsModel = InputsModel, RunOptions = RunOptions, Param = 1),
+    regexp = NA
+  )
 })
 
 test_that("Upstream basin with nil area should return same Qdown as GR4J alone", {
-- 
GitLab