aboutsummaryrefslogtreecommitdiff
path: root/tester/main.rs
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-29 03:55:18 +0200
committerhachem <im@hachem.wtf>2026-08-29 03:55:18 +0200
commit94612a0be0e691d68bcd27a33e529ad30fa3df43 (patch)
tree8d93b8d03ffa3170e07c10cd86b2366c9ca7a30c /tester/main.rs
parenta159f48900f1927b05d4b8f3d04459610eb9897e (diff)
add: complex numbers
Diffstat (limited to 'tester/main.rs')
-rw-r--r--tester/main.rs101
1 files changed, 101 insertions, 0 deletions
diff --git a/tester/main.rs b/tester/main.rs
new file mode 100644
index 0000000..ecebd34
--- /dev/null
+++ b/tester/main.rs
@@ -0,0 +1,101 @@
+mod benchmarks;
+mod clifford;
+mod common;
+mod custom_gates;
+mod kernels;
+mod noise;
+mod non_clifford;
+mod simd;
+
+use common::{print_benchmark_table, print_summary, BenchmarkResult};
+use std::env;
+
+fn print_header() {
+ println!("═══════════════════════════════════════════════════════════════");
+ println!(" PSI Quantum Simulator");
+ println!("═══════════════════════════════════════════════════════════════\n");
+}
+
+fn print_usage() {
+ println!("Usage: tester [OPTIONS]");
+ println!();
+ println!("Options:");
+ println!(" all Run all tests (default)");
+ println!(" clifford Run Clifford gate tests only");
+ println!(" non-clifford Run non-Clifford gate tests only");
+ println!(" custom Run custom gate tests only");
+ println!(" kernels Run kernel batching tests only");
+ println!(" simd Run SIMD acceleration tests only");
+ println!(" noise Run noise channel tests only");
+ println!(" bench Run benchmark tests only");
+ println!(" help Show this help message");
+ println!();
+ println!("Examples:");
+ println!(" tester # Run all tests");
+ println!(" tester clifford # Run only Clifford gate tests");
+ println!(" tester non-clifford # Run only rotation/parametric gate tests");
+ println!(" tester kernels # Run only kernel batching tests");
+ println!(" tester simd # Run only SIMD tests");
+ println!(" tester noise # Run only noise channel tests");
+ println!(" tester custom bench # Run custom gates and benchmarks");
+}
+
+fn main() {
+ let args: Vec<String> = env::args().skip(1).collect();
+
+ if args
+ .iter()
+ .any(|a| a == "help" || a == "--help" || a == "-h")
+ {
+ print_usage();
+ return;
+ }
+
+ print_header();
+
+ let mut results: Vec<BenchmarkResult> = Vec::new();
+
+ let run_all = args.is_empty() || args.iter().any(|a| a == "all");
+ let run_clifford = run_all || args.iter().any(|a| a == "clifford");
+ let run_non_clifford = run_all || args.iter().any(|a| a == "non-clifford");
+ let run_custom = run_all || args.iter().any(|a| a == "custom");
+ let run_kernels = run_all || args.iter().any(|a| a == "kernels");
+ let run_simd = run_all || args.iter().any(|a| a == "simd");
+ let run_noise = run_all || args.iter().any(|a| a == "noise");
+ let run_bench = run_all || args.iter().any(|a| a == "bench");
+
+ if run_clifford {
+ clifford::run_all(&mut results);
+ }
+
+
+ if run_non_clifford {
+ non_clifford::run_all(&mut results);
+ }
+
+ if run_custom {
+ custom_gates::run_all(&mut results);
+ }
+
+ if run_kernels {
+ kernels::run_all(&mut results);
+ }
+
+ if run_simd {
+ simd::run_all(&mut results);
+ }
+
+ if run_noise {
+ noise::run_all(&mut results);
+ }
+
+ if run_bench {
+ benchmarks::run_all(&mut results);
+ }
+
+
+ if !results.is_empty() {
+ print_benchmark_table(&results);
+ print_summary(&results);
+ }
+}