//! ML Backtesting Framework
//!
//! Provides barrier parameter optimization, DQN action loading from CSV,
//! and comprehensive report generation for model evaluation.

// Workspace lints deny unwrap/expect/indexing at warn level; override to allow in tests only.
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::indexing_slicing))]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::integer_division)]
#![allow(clippy::shadow_reuse, clippy::shadow_same, clippy::shadow_unrelated)] // Tensor ops: let x = x.relu() is idiomatic
#![allow(clippy::non_ascii_literal)] // Math symbols in ML documentation and error messages
#![allow(clippy::partial_pub_fields)] // ML config structs: some fields are pub API, some internal
#![allow(clippy::same_name_method)] // Intentional: inherent methods shadow trait defaults for ML-specific behavior
#![allow(clippy::indexing_slicing)] // Tensor/matrix indexing with bounds guaranteed by construction

pub use ml_core::MLError;

pub mod action_loader;
pub mod barrier_backtest;
pub mod report;

pub use action_loader::{load_actions_from_csv, DQNActionRecord};
pub use barrier_backtest::{BacktestResults, BarrierBacktester, BarrierParams};
pub use report::{BacktestReport, PerformanceMetrics, Recommendation};
