quantrs2_core/quantum_internet/
functions.rs1use super::types::{GeographicLocation, QuantumInternet, QuantumRouting, QuantumRoutingAlgorithm};
6
7#[cfg(test)]
8mod tests {
9 use super::*;
10 #[test]
11 fn test_quantum_internet_creation() {
12 let quantum_internet = QuantumInternet::new();
13 assert_eq!(
14 quantum_internet
15 .quantum_network_infrastructure
16 .quantum_nodes
17 .len(),
18 0
19 );
20 }
21 #[test]
22 fn test_global_network_deployment() {
23 let mut quantum_internet = QuantumInternet::new();
24 let result = quantum_internet.deploy_global_quantum_network();
25 assert!(result.is_ok());
26 let deployment_result = result.expect("global network deployment should succeed");
27 assert!(deployment_result.total_nodes > 0);
28 assert!(deployment_result.satellite_coverage > 90.0);
29 assert!(deployment_result.network_reliability > 99.0);
30 }
31 #[test]
32 fn test_quantum_internet_advantages() {
33 let mut quantum_internet = QuantumInternet::new();
34 let report = quantum_internet.demonstrate_quantum_internet_advantages();
35 assert!(report.communication_advantage > 1.0);
36 assert!(report.distributed_computing_advantage > 1.0);
37 assert!(report.sensing_advantage > 1.0);
38 assert!(report.security_advantage > 1.0);
39 assert!(report.scalability_advantage > 1.0);
40 assert!(report.overall_advantage > 1.0);
41 }
42 #[test]
43 fn test_global_qkd() {
44 let mut quantum_internet = QuantumInternet::new();
45 quantum_internet
46 .deploy_global_quantum_network()
47 .expect("network deployment should succeed for QKD test");
48 let source = GeographicLocation {
49 latitude: 40.7128,
50 longitude: -74.0060,
51 altitude: 0.0,
52 country: "USA".to_string(),
53 city: "New York".to_string(),
54 };
55 let destination = GeographicLocation {
56 latitude: 51.5074,
57 longitude: -0.1278,
58 altitude: 0.0,
59 country: "UK".to_string(),
60 city: "London".to_string(),
61 };
62 let result = quantum_internet.execute_global_qkd(source, destination, 256);
63 assert!(result.is_ok());
64 let qkd_result = result.expect("global QKD should succeed");
65 assert_eq!(qkd_result.distributed_key.key_length, 256);
66 assert!(qkd_result.quantum_advantage > 1.0);
67 }
68 #[test]
69 fn test_quantum_routing() {
70 let routing = QuantumRouting::new();
71 assert!(matches!(
72 routing.routing_algorithm,
73 QuantumRoutingAlgorithm::MultiObjective
74 ));
75 }
76}