From 0a35d387f79b1fbd1e9aeeb38eec66204c9dfe86 Mon Sep 17 00:00:00 2001
From: Youcef AOUAD <youcef.aouad@inrae.fr>
Date: Tue, 28 May 2024 16:39:11 +0200
Subject: [PATCH] adists check list

---
 src/Checker/Adists.py | 51 +++++++++++++++++++++++++++++++++++++++++++
 src/Modules.py        |  2 ++
 src/Solver/AdisTS.py  | 12 ++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 src/Checker/Adists.py

diff --git a/src/Checker/Adists.py b/src/Checker/Adists.py
new file mode 100644
index 00000000..36dce349
--- /dev/null
+++ b/src/Checker/Adists.py
@@ -0,0 +1,51 @@
+# Adists.py -- Pamhyr study checkers
+# Copyright (C) 2023-2024  INRAE
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+# -*- coding: utf-8 -*-
+
+import time
+import logging
+from functools import reduce
+
+from PyQt5.QtCore import QCoreApplication
+
+from Modules import Modules
+from Checker.Checker import AbstractModelChecker, STATUS
+
+_translate = QCoreApplication.translate
+
+logger = logging.getLogger()
+
+class AdistsOutputKpChecker(AbstractModelChecker):
+    def __init__(self):
+        super(AdistsOutputKpChecker, self).__init__()
+
+        self._name = _translate("Checker", "AdisTS output Kp checker")
+        self._description = _translate(
+            "Checker", "Check output Kp"
+        )
+        self._modules = Modules.OUTPUT_KP
+
+    def run(self, study):
+        ok = True
+        nerror = 0
+        self._summary = "ok"
+        self._status = STATUS.OK
+
+        if not self.basic_check(study):
+            return False
+
+        return ok
diff --git a/src/Modules.py b/src/Modules.py
index f8ed5b65..bc02b6c6 100644
--- a/src/Modules.py
+++ b/src/Modules.py
@@ -54,6 +54,7 @@ class Modules(IterableFlag):
     RESERVOIR = auto()
     SEDIMENT_LAYER = auto()
     ADDITIONAL_FILES = auto()
+    OUTPUT_KP = auto()
 
     # Results
     RESULTS = auto()
@@ -77,6 +78,7 @@ class Modules(IterableFlag):
             cls.ADDITIONAL_FILES,
             cls.RESULTS,
             cls.WINDOW_LIST,
+            cls.OUTPUT_KP,
         ]
 
     @classmethod
diff --git a/src/Solver/AdisTS.py b/src/Solver/AdisTS.py
index e60fcde8..f135d438 100644
--- a/src/Solver/AdisTS.py
+++ b/src/Solver/AdisTS.py
@@ -27,6 +27,10 @@ from Solver.CommandLine import CommandLineSolver
 from Model.Results.Results import Results
 from Model.Results.River.River import River, Reach, Profile
 
+from Checker.Adists import (
+    AdistsOutputKpChecker,
+)
+
 logger = logging.getLogger()
 
 def adists_file_open(filepath, mode):
@@ -72,6 +76,14 @@ class AdisTS(CommandLineSolver):
 
         return lst
 
+    @classmethod
+    def checkers(cls):
+        lst = [
+            AdistsOutputKpChecker(),
+        ]
+
+        return lst
+
     def cmd_args(self, study):
         lst = super(AdisTS, self).cmd_args(study)
         return lst
-- 
GitLab