quantrs2_device/hardware_parallelization/
mod.rs1pub mod config;
8pub mod config_defaults;
9pub mod engine;
10pub mod monitor;
11pub mod types;
12
13pub use config::*;
15pub use engine::*;
16pub use monitor::*;
17pub use types::*;
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22 use crate::calibration::CalibrationManager;
23 use crate::integrated_device_manager::IntegratedQuantumDeviceManager;
24 use crate::routing_advanced::AdvancedQubitRouter;
25 use std::collections::HashMap;
26 use std::sync::{Arc, RwLock};
27 use std::time::Duration;
28
29 #[test]
30 fn test_parallelization_config_default() {
31 let config = ParallelizationConfig::default();
32 assert_eq!(config.strategy, ParallelizationStrategy::Hybrid);
33 assert!(config.resource_allocation.max_concurrent_circuits > 0);
34 }
35
36 #[test]
37 fn test_task_priority_ordering() {
38 assert!(TaskPriority::Low < TaskPriority::Normal);
39 assert!(TaskPriority::Normal < TaskPriority::High);
40 assert!(TaskPriority::High < TaskPriority::Critical);
41 assert!(TaskPriority::Critical < TaskPriority::System);
42 }
43
44 #[test]
45 fn test_resource_requirements_creation() {
46 let requirements = ParallelResourceRequirements {
47 required_cpu_cores: 4,
48 required_memory_mb: 1024.0,
49 required_qpu_time: Duration::from_secs(300),
50 required_bandwidth_mbps: 100.0,
51 required_storage_mb: 500.0,
52 };
53
54 assert_eq!(requirements.required_cpu_cores, 4);
55 assert_eq!(requirements.required_memory_mb, 1024.0);
56 }
57
58 #[tokio::test]
59 async fn test_parallelization_engine_creation() {
60 let config = ParallelizationConfig::default();
61 let devices = HashMap::new();
62 let cal_mgr = CalibrationManager::new();
63 let device_manager = Arc::new(RwLock::new(
64 IntegratedQuantumDeviceManager::new(Default::default(), devices, cal_mgr.clone())
65 .expect("Failed to create IntegratedQuantumDeviceManager in test"),
66 ));
67 let calibration_manager = Arc::new(RwLock::new(cal_mgr));
68 let router = Arc::new(RwLock::new(AdvancedQubitRouter::new(
69 Default::default(),
70 crate::routing_advanced::AdvancedRoutingStrategy::Hybrid,
71 42,
72 )));
73
74 let _engine =
75 HardwareParallelizationEngine::new(config, device_manager, calibration_manager, router);
76
77 assert!(true);
79 }
80}