- Fix format_push_string: write!() instead of push_str(&format!()) (25 sites) - Fix str_to_string: .to_owned() instead of .to_string() on &str (6 sites) - Fix unseparated_literal_suffix: add _ separator (6 sites) - Fix multiple_inherent_impl: merge split impl blocks in TGGN, TFT, OFI (3) - Fix else_if_without_else: add exhaustive else clauses (3 sites) - Fix if_then_some_else_none: use .then().transpose() (1 site) - Fix unwrap_in_result: replace expect() with match + ? (2 sites) - Fix wildcard_enum_match_arm: enumerate Storage variants explicitly (2) - Fix decimal_literal_representation: use hex for power-of-2 constants (5) - Fix rc_buffer: Arc<Vec<T>> → Arc<[T]> for OFI features - Fix needless_range_loop: convert to iterator patterns (17 sites) - Fix used_underscore_binding: remove prefix on used vars (6 sites) - Fix doc list item indentation (7 sites) - Allow too_many_arguments on ML training functions (4) - Allow multiple_unsafe_ops_per_block on CUDA FFI functions (3) - Allow upper_case_acronyms on SLSTM/MLSTM model names (2) - Add ML-crate pedantic allows: shadow, similar_names, type_complexity, indexing_slicing, partial_pub_fields, non_ascii_literal, same_name_method (following existing ml-labeling/ml-universe pattern) Result: cargo clippy --workspace -- -D warnings passes with zero warnings. All 2758+ lib tests pass (2 pre-existing backtesting failures unchanged). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
2.1 KiB
Rust
46 lines
2.1 KiB
Rust
#![deny(clippy::unwrap_used, clippy::expect_used)]
|
|
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))]
|
|
#![allow(clippy::module_name_repetitions)]
|
|
#![allow(clippy::integer_division)]
|
|
#![allow(clippy::float_arithmetic)]
|
|
#![allow(clippy::doc_markdown)]
|
|
#![allow(clippy::missing_const_for_fn)]
|
|
#![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::type_complexity)] // Complex generic types in validation pipeline
|
|
#![allow(clippy::single_char_lifetime_names)] // 'a is idiomatic Rust
|
|
|
|
//! Statistical and Financial Validation — core algorithms.
|
|
//!
|
|
//! Provides two categories of validation:
|
|
//! - Statistical validation (walk-forward, DSR, PBO, permutation tests)
|
|
//! - Temporal guards for preventing forward-looking data leakage
|
|
//! - Noise injection for robustness testing
|
|
//! - Fold-by-fold performance degradation tracking
|
|
//!
|
|
//! Bridge modules (DQN/PPO adapters, regime analysis, harness) stay in the `ml`
|
|
//! crate and re-export types from this crate.
|
|
|
|
pub use ml_core::{MLError, MLResult};
|
|
|
|
pub mod degradation;
|
|
pub mod noise;
|
|
pub mod statistical;
|
|
pub mod temporal_guard;
|
|
pub mod types;
|
|
pub mod walk_forward;
|
|
|
|
// Re-export core types at crate root for convenience.
|
|
pub use degradation::{DegradationReport, DegradationTracker, FoldMetrics};
|
|
pub use noise::{compute_robustness_score, NoiseConfig, NoiseInjector};
|
|
pub use statistical::{
|
|
binomial_coefficient, deflated_sharpe_ratio, excess_kurtosis, normal_cdf, normal_ppf,
|
|
permutation_test, probability_of_backtest_overfitting, sharpe_ratio, skewness, DsrResult,
|
|
PboResult, PermutationResult,
|
|
};
|
|
pub use temporal_guard::{LeakageAuditReport, NormalizationStats, TemporalGuard};
|
|
pub use types::{TimeSeriesData, ValidatableStrategy};
|
|
pub use walk_forward::{walk_forward_split, Fold, WalkForwardConfig};
|