trustformers-debug 0.1.1

Advanced debugging tools for TrustformeRS models
Documentation
//! Auto-generated module
//!
//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)

#[cfg(test)]
mod tests {

    use crate::{QuantumDebugConfig, QuantumDebugger};
    use anyhow::Result;
    use scirs2_core::ndarray::Array2;
    #[test]
    fn test_quantum_debugger_creation() {
        let config = QuantumDebugConfig::default();
        let debugger = QuantumDebugger::new(config);
        assert_eq!(debugger.config.num_qubits, 16);
    }
    #[test]
    fn test_quantum_analysis() -> Result<()> {
        let mut debugger = QuantumDebugger::new(QuantumDebugConfig::default());
        let weights = Array2::<f32>::ones((4, 4)).into_dyn();
        let analysis = debugger.analyze_layer_quantum("test_layer", &weights)?;
        assert_eq!(analysis.layer_name, "test_layer");
        assert!(analysis.coherence_score >= 0.0 && analysis.coherence_score <= 1.0);
        assert!(analysis.quantum_advantage_score >= 0.0 && analysis.quantum_advantage_score <= 1.0);
        Ok(())
    }
    #[test]
    fn test_quantum_state_conversion() -> Result<()> {
        let debugger = QuantumDebugger::new(QuantumDebugConfig::default());
        let weights = Array2::<f32>::from_elem((2, 2), 0.5).into_dyn();
        let quantum_state = debugger.weights_to_quantum_state(&weights)?;
        assert!(!quantum_state.amplitudes.is_empty());
        assert_eq!(quantum_state.amplitudes.len(), quantum_state.phases.len());
        assert!(quantum_state.fidelity >= 0.0 && quantum_state.fidelity <= 1.0);
        assert!(quantum_state.coherence_time > 0.0);
        Ok(())
    }
    #[test]
    fn test_entanglement_analysis() -> Result<()> {
        let debugger = QuantumDebugger::new(QuantumDebugConfig::default());
        let weights = Array2::<f32>::from_elem((4, 4), 0.25).into_dyn();
        let quantum_state = debugger.weights_to_quantum_state(&weights)?;
        let entanglement = debugger.analyze_entanglement(&quantum_state)?;
        assert!(!entanglement.von_neumann_entropy.is_empty());
        assert!(entanglement.quantum_mutual_information >= 0.0);
        Ok(())
    }
    #[test]
    fn test_interference_analysis() -> Result<()> {
        let debugger = QuantumDebugger::new(QuantumDebugConfig::default());
        let weights = Array2::<f32>::from_elem((3, 3), 0.33).into_dyn();
        let quantum_state = debugger.weights_to_quantum_state(&weights)?;
        let interference = debugger.analyze_interference(&quantum_state)?;
        assert!(interference.visibility >= 0.0 && interference.visibility <= 1.0);
        assert!(!interference.phase_coherence.is_empty());
        assert!(!interference.patterns.is_empty());
        Ok(())
    }
    #[test]
    fn test_error_correction_analysis() -> Result<()> {
        let debugger = QuantumDebugger::new(QuantumDebugConfig::default());
        let weights = Array2::<f32>::from_elem((5, 5), 0.2).into_dyn();
        let quantum_state = debugger.weights_to_quantum_state(&weights)?;
        let error_correction = debugger.analyze_error_correction(&quantum_state)?;
        assert!(!error_correction.correction_codes.is_empty());
        assert!(error_correction.success_rate >= 0.0 && error_correction.success_rate <= 1.0);
        assert!(
            error_correction.logical_error_rate >= 0.0
                && error_correction.logical_error_rate <= 1.0
        );
        Ok(())
    }
}