Files
DoC/backend/api/services/docmf_validation_service.py
T

40 lines
1.1 KiB
Python

def validate_single_level(level: dict):
errors = []
a, b = level["core"]
c, d = level["support"]
# Core dentro del soporte
if not (c <= a < b <= d):
errors.append("El núcleo debe estar completamente dentro del soporte.")
# Nodos cubren correctamente el soporte
left = level["left_nodes"]
right = level["right_nodes"]
if left[0][0] != c:
errors.append("El primer nodo izquierdo debe coincidir con el inicio del soporte.")
if left[-1][0] != a:
errors.append("El último nodo izquierdo debe coincidir con el inicio del núcleo.")
if right[0][0] != b:
errors.append("El primer nodo derecho debe coincidir con el final del núcleo.")
if right[-1][0] != d:
errors.append("El último nodo derecho debe coincidir con el final del soporte.")
return errors
def validate_levels(levels):
results = []
for idx, level in enumerate(levels):
errors = validate_single_level(level.dict())
results.append({
"level_index": idx,
"valid": len(errors) == 0,
"errors": errors
})
return results