40 lines
1.1 KiB
Python
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
|