mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Checker: Mage: Add guidelines checker.
This commit is contained in:
1 parent
8b8aff7df1
commit
852a3f58ff
3 files changed
+58
-5
No files matched your search
@@ -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
|
||||
Reference in new issue
Block a user