use super::constraint_analyzer::ConstraintViolation;
use super::energy_analyzer::EnergyBreakdown;
use serde::Serialize;
#[derive(Debug, Clone, Serialize)]
pub struct ConstraintAnalysis {
pub total_constraints: usize,
pub satisfied: usize,
pub violated: usize,
pub satisfaction_rate: f64,
pub penalty_incurred: f64,
pub violations: Vec<ConstraintViolation>,
}
#[derive(Debug, Clone, Serialize)]
pub struct EnergyAnalysis {
pub total_energy: f64,
pub breakdown: EnergyBreakdown,
pub critical_variables: Vec<(String, f64)>,
pub critical_interactions: Vec<((String, String), f64)>,
pub improvement_potential: f64,
}