//! Simple Performance Test to validate benchmark infrastructure works

use common::types::{Price, Quantity};
use criterion::{black_box, criterion_group, criterion_main, Criterion};

/// Simple benchmark to test that criterion framework is working
fn simple_benchmark(c: &mut Criterion) {
    c.bench_function("simple_test", |b| {
        b.iter(|| {
            let x = black_box(42);
            let y = black_box(24);
            black_box(x + y)
        })
    });
}

/// Test that our imports work
fn test_imports_benchmark(c: &mut Criterion) {
    c.bench_function("test_imports", |b| {
        b.iter(|| {
            // Test basic types
            let price = black_box(
                Price::new(100.0)
                    .map_err(|e| format!("Failed to create test price: {}", e))
                    .unwrap(),
            );
            let quantity = black_box(
                Quantity::new(1000.0)
                    .map_err(|e| format!("Failed to create test quantity: {}", e))
                    .unwrap(),
            );

            // Simple calculation
            black_box(price.as_f64() * quantity.as_f64())
        })
    });
}

criterion_group!(benches, simple_benchmark, test_imports_benchmark);
criterion_main!(benches);
