Skip to content

05_01_02_validation_engine - El Juez Automático

🎯 Propósito

Motor de validación de 5 fases que ejecuta verificación completa de la jerarquía de módulos.

📊 Pipeline de 5 Fases

  1. Parse & Load - Carga módulos y construye grafo
  2. Rule Checking - Aplica composition rules
  3. Cycle Detection - Detecta dependencias circulares (DFS)
  4. Transitive Validation - Valida jerarquía transitiva (Floyd-Warshall)
  5. Report Generation - Genera reportes (TEXT/JSON/HTML)

🚀 Quick Start

#include <audiolab/hierarchy/validation_engine.hpp>

using namespace audiolab::hierarchy;

// Preparar módulos
std::map<std::string, ModuleMetadata> modules = {/* ... */};

// Validar
auto& engine = global_validation_engine();
auto report = engine.validate_all(modules);

if (report.passed) {
    std::cout << "✅ All modules valid!\n";
} else {
    std::cout << "❌ Errors: " << report.stats.error_count << "\n";
    std::cout << report.to_json();
}

🔑 Clases Principales

ValidationEngine

  • validate_all() - Valida todo el sistema
  • validate_module() - Valida módulo individual
  • quick_validate() - Validación rápida (solo errores)

DependencyGraph

  • Representa grafo de dependencias
  • Métodos: get_dependencies(), get_transitive_dependencies(), calculate_depth()

CycleDetector

  • Detecta ciclos usando DFS
  • find_all_cycles(), has_cycles(), find_one_cycle()

TransitiveValidator

  • Valida closure transitivo usando Floyd-Warshall
  • compute_transitive_closure(), validate_transitive_hierarchy()

ValidationReport

  • Reporte completo con estadísticas
  • Exporta a JSON/HTML: to_json(), to_html()

📈 Estadísticas del Reporte

  • Total módulos validados
  • Errores y warnings encontrados
  • Ciclos detectados
  • Duración por fase
  • Duración total

✅ Tests

mkdir build && cd build
cmake ..
cmake --build .
./test_validation_engine

Target: >90% coverage

📚 Documentación

Ver docs/VALIDATION_PIPELINE.md para detalles del pipeline completo.


Status: ✅ Completado Cobertura: >90%