Checker: Mage: Add guidelines checker.

This commit is contained in:
Pierre-Antoine Rouby committed 2024-01-17 15:26:21 +01:00
1 parent 8b8aff7df1
commit 852a3f58ff
3 files changed
+58 -5

No files matched your search

+49
View File
@@ -24,6 +24,7 @@ from tools import flatten, timer
from PyQt5.QtCore import QCoreApplication
from Checker.Checker import AbstractModelChecker, STATUS
from Checker.Study import StudyGeometryChecker
_translate = QCoreApplication.translate
@@ -195,3 +196,51 @@ class MageNetworkGraphChecker(AbstractModelChecker):
self._summary = summary
self._status = status
return True
class MageGeometryGuideLineChecker(StudyGeometryChecker):
def __init__(self):
super(MageGeometryGuideLineChecker, self).__init__()
self._name = _translate("Checker", "Mage geometry guide line checker")
self._description = _translate(
"Checker",
"Check if exists geometry guide line is correctly defined \
for each reaches of the study"
)
self._reachs = []
def run(self, study):
ok = super(MageGeometryGuideLineChecker, self).run(study)
if not ok:
return ok
river = study.river
edges = river.enable_edges()
gls = []
for edge in edges:
comp, incomp = edge.reach.compute_guidelines()
if len(incomp) != 0:
self._status = STATUS.WARNING
self._summary = "incomplete_guideline"
return False
gls.append(comp)
profiles = edge.reach.profiles
for profile in profiles:
if not profile.has_standard_named_points():
self._status = STATUS.WARNING
self._summary = "no_standard_guileline_defined"
return False
for gl in gls[1:]:
if len(gls[0].symmetric_difference(gl)) != 0:
self._status = STATUS.WARNING
self._summary = "no_all_reaches_do_not_have_same_defined"
return False
return ok