quantrs2_device/cross_platform_benchmarking/
crossplatformbenchmarkconfig_traits.rs1use quantrs2_circuit::prelude::*;
12use std::time::{Duration, Instant, SystemTime};
13
14use super::types::{
15 ComplexityLevel, CrossPlatformBenchmarkConfig, ParallelBenchmarkConfig, QuantumPlatform,
16 StatisticalAnalysisConfig,
17};
18
19impl Default for CrossPlatformBenchmarkConfig {
20 fn default() -> Self {
21 Self {
22 target_platforms: vec![
23 QuantumPlatform::IBMQuantum("ibmq_qasm_simulator".to_string()),
24 QuantumPlatform::AWSBraket(
25 "arn:aws:braket:::device/quantum-simulator/amazon/sv1".to_string(),
26 ),
27 ],
28 complexity_levels: vec![
29 ComplexityLevel {
30 name: "Simple".to_string(),
31 qubit_count: 2,
32 circuit_depth: 5,
33 gate_count_range: (5, 15),
34 two_qubit_gate_ratio: 0.3,
35 description: "Basic circuits for connectivity testing".to_string(),
36 },
37 ComplexityLevel {
38 name: "Medium".to_string(),
39 qubit_count: 5,
40 circuit_depth: 20,
41 gate_count_range: (20, 50),
42 two_qubit_gate_ratio: 0.4,
43 description: "Intermediate circuits for performance assessment".to_string(),
44 },
45 ComplexityLevel {
46 name: "Complex".to_string(),
47 qubit_count: 10,
48 circuit_depth: 50,
49 gate_count_range: (50, 150),
50 two_qubit_gate_ratio: 0.5,
51 description: "Complex circuits for scalability testing".to_string(),
52 },
53 ],
54 statistical_config: StatisticalAnalysisConfig::default(),
55 parallel_config: ParallelBenchmarkConfig::default(),
56 benchmark_timeout: Duration::from_secs(300),
57 repetitions: 10,
58 enable_cost_analysis: true,
59 enable_latency_analysis: true,
60 enable_reliability_analysis: true,
61 custom_circuits: Vec::new(),
62 }
63 }
64}