diff options
| author | hachem <im@hachem.wtf> | 2026-08-29 03:55:18 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-29 03:55:18 +0200 |
| commit | 94612a0be0e691d68bcd27a33e529ad30fa3df43 (patch) | |
| tree | 8d93b8d03ffa3170e07c10cd86b2366c9ca7a30c /tester/main.rs | |
| parent | a159f48900f1927b05d4b8f3d04459610eb9897e (diff) | |
add: complex numbers
Diffstat (limited to 'tester/main.rs')
| -rw-r--r-- | tester/main.rs | 101 |
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); + } +} |
