quantrs2-device 0.1.3

Quantum device connectors for the QuantRS2 framework
Documentation
//! Auto-generated module
//!
//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)

use scirs2_core::parallel_ops::*;
use scirs2_core::random::prelude::*;
use scirs2_core::random::{Distribution, RandNormal};

use super::types::{
    CalibrationFeedback, CalibrationInput, CalibrationPrediction, CalibrationState,
    EnhancedCalibrationConfig, EnhancedCalibrationSystem, ErrorCharacterization, ErrorData,
    HardwareSpec, QuantumOperation, QubitParameters,
};

type Normal<T> = RandNormal<T>;
/// Calibration model trait
pub trait CalibrationModel: Send + Sync {
    fn predict(&self, input: &CalibrationInput) -> CalibrationPrediction;
    fn update(&mut self, feedback: &CalibrationFeedback);
}
/// Error model trait
pub trait ErrorModelTrait: Send + Sync {
    fn characterize(&self, data: &ErrorData) -> ErrorCharacterization;
    fn predict_error(&self, operation: &QuantumOperation) -> f64;
}
#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn test_enhanced_calibration_system_creation() {
        let config = EnhancedCalibrationConfig::default();
        let system = EnhancedCalibrationSystem::new(config);
        assert!(system.ml_calibrator.is_some());
    }
    #[test]
    fn test_hardware_spec_default() {
        let spec = HardwareSpec::default();
        assert_eq!(spec.num_qubits, 5);
        assert_eq!(spec.connectivity.len(), 4);
    }
    #[test]
    fn test_calibration_state() {
        let mut state = CalibrationState::new(5);
        assert_eq!(state.num_qubits, 5);
        state
            .single_qubit_params
            .insert(0, QubitParameters::default());
        assert_eq!(state.single_qubit_params.len(), 1);
    }
}