From 4e33703ed7afa63f277730f8ebcdc69474e847cd Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@inrae.fr>
Date: Tue, 22 Jun 2021 16:44:35 +0200
Subject: [PATCH] test(regression): add feature ignore specific items in
 compared variables

---
 .regressionignore           |  8 ++++++--
 tests/testthat/regression.R | 11 +++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/.regressionignore b/.regressionignore
index f921ad27..0c4a490e 100644
--- a/.regressionignore
+++ b/.regressionignore
@@ -4,10 +4,14 @@
 # ignored variable : [Topic]<SPACE>[Variable] or *<SPACE>[Variable] for every variable whatever the topic
 # Example for ignoring OutputsModel variable produced by example("RunModel_GR2M"): RunModel_GR2M OutputsModel
 
-* RunOptions
+* RunOptions$Outputs_Sim
+* RunOptions$FeatFUN_MOD
+* RunOptions$FortranOutputs
+RunModel_CemaNeige RunOptions$Outputs_Cal
 Param_Sets_GR4J RunOptions_Cal
 Param_Sets_GR4J RunOptions_Val
-* OutputsModel
+* OutputsModel$Param
+* OutputsModel$WarmUpQsim
 Param_Sets_GR4J OutputsModel_Val
 RunModel_Lag OutputsModelDown
 SeriesAggreg SimulatedMonthlyRegime
diff --git a/tests/testthat/regression.R b/tests/testthat/regression.R
index 84924b3a..147b73c5 100644
--- a/tests/testthat/regression.R
+++ b/tests/testthat/regression.R
@@ -13,6 +13,17 @@ CompareWithStable <- function(refVarFile, testDir, regIgnore) {
       if (file.exists(testVarFile)) {
         testVar <- readRDS(testVarFile)
         refVar <- readRDS(refVarFile)
+        if (!is.null(regIgnore)) {
+          regIgnore$mainVar <- gsub("\\$.*$", "", regIgnore[,2])
+          varIgnore <- regIgnore[apply(regIgnore, 1, function(x) {v$var == x[3] && (x[1] == "*" || x[1] == v$topic)}), 2]
+          if (length(varIgnore) > 0) {
+            itemIgnore <- gsub("^.*\\$", "", varIgnore)
+            for(item in itemIgnore) {
+              testVar[[item]] <- NULL
+              refVar[[item]] <- NULL
+            }
+          }
+        }
         expect_equivalent(testVar, refVar)
       }
     })
-- 
GitLab