quantrs2_core/quantum_supremacy_algorithms/
functions.rs1use super::types::{
6 ManyBodySystemType, Photon, PhotonSource, QuantumGateType, QuantumSupremacyEngine,
7 RandomCircuitParameters, SamplingParameters,
8};
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13 #[test]
14 fn test_quantum_supremacy_engine_creation() {
15 let engine = QuantumSupremacyEngine::new(50);
16 assert_eq!(
17 engine.random_circuit_sampling.circuit_generator.qubit_count,
18 50
19 );
20 }
21 #[test]
22 fn test_random_circuit_sampling() {
23 let mut engine = QuantumSupremacyEngine::new(20);
24 let circuit_params = RandomCircuitParameters {
25 qubit_count: 20,
26 depth: 20,
27 gate_set: vec![QuantumGateType::Hadamard, QuantumGateType::CNOT],
28 };
29 let sampling_params = SamplingParameters {
30 sample_count: 1000,
31 error_mitigation: true,
32 };
33 let result = engine.execute_random_circuit_sampling(circuit_params, sampling_params);
34 assert!(result.is_ok());
35 let supremacy_result = result.expect("Random circuit sampling should succeed");
36 assert!(supremacy_result.supremacy_factor > 1.0);
37 assert!(supremacy_result.verification_confidence > 0.5);
38 }
39 #[test]
40 fn test_boson_sampling() {
41 let mut engine = QuantumSupremacyEngine::new(20);
42 let result = engine.execute_boson_sampling(6, 20, 10000);
43 assert!(result.is_ok());
44 let boson_result = result.expect("Boson sampling should succeed");
45 assert_eq!(boson_result.photon_count, 6);
46 assert_eq!(boson_result.mode_count, 20);
47 assert!(boson_result.supremacy_factor > 1.0);
48 }
49 #[test]
50 fn test_iqp_sampling() {
51 let mut engine = QuantumSupremacyEngine::new(30);
52 let result = engine.execute_iqp_sampling(30, 10, 100000);
53 assert!(result.is_ok());
54 let iqp_result = result.expect("IQP sampling should succeed");
55 assert_eq!(iqp_result.circuit_depth, 10);
56 assert!(iqp_result.computational_advantage > 1.0);
57 assert!(iqp_result.hardness_verified);
58 }
59 #[test]
60 fn test_quantum_simulation_advantage() {
61 let mut engine = QuantumSupremacyEngine::new(40);
62 let result =
63 engine.execute_quantum_simulation_advantage(ManyBodySystemType::Hubbard, 40, 1.0);
64 assert!(result.is_ok());
65 let simulation_result = result.expect("Quantum simulation should succeed");
66 assert_eq!(simulation_result.system_size, 40);
67 assert!(simulation_result.advantage_factor > 1.0);
68 assert!(simulation_result.verification_passed);
69 }
70 #[test]
71 fn test_supremacy_benchmarking() {
72 let mut engine = QuantumSupremacyEngine::new(50);
73 let report = engine.benchmark_quantum_supremacy();
74 assert!(report.random_circuit_advantage > 1e6);
75 assert!(report.boson_sampling_advantage > 1e6);
76 assert!(report.iqp_sampling_advantage > 1e6);
77 assert!(report.quantum_simulation_advantage > 1e6);
78 assert!(report.verification_efficiency > 1.0);
79 assert!(report.overall_supremacy_factor > 1e6);
80 }
81 #[test]
82 fn test_photon_source_generation() {
83 let source = PhotonSource::spdc();
84 let photon = source.generate_photon();
85 assert!(photon.is_ok());
86 let p = photon.expect("Photon generation should succeed");
87 assert_eq!(p.wavelength, 800e-9);
88 }
89}