use criterion::{Criterion, black_box, criterion_group, criterion_main}; use rtx_automeasure::{AutoMLAgent, AutoMLConfig, TaskType}; use rtx_tensor::Tensor; fn benchmark_automl_fit(c: &mut Criterion) { let rt = tokio::runtime::Runtime::new().unwrap(); c.bench_function("automl_basic_fit", |b| { b.iter(|| { rt.block_on(async { let config = AutoMLConfig::new() .with_task_type(TaskType::Classification) .with_time_budget(10); // Very short for benchmark let mut agent = AutoMLAgent::new(config).unwrap(); let x_train = Tensor::randn(&[50, 5], rtx_tensor::DType::F32); let y_train = Tensor::zeros(&[50], rtx_tensor::DType::I64); let _pipeline = agent.fit(&x_train, &y_train).await.unwrap(); }) }) }); } fn benchmark_model_selection(c: &mut Criterion) { let rt = tokio::runtime::Runtime::new().unwrap(); c.bench_function("model_selector_recommend", |b| { b.iter(|| { rt.block_on(async { // This will be implemented when we create the actual modules // For now, just a placeholder black_box(()); }) }) }); } criterion_group!(benches, benchmark_automl_fit, benchmark_model_selection); criterion_main!(benches);