#![forbid(unsafe_code)]
#![warn(
missing_docs,
rust_2018_idioms,
unreachable_pub,
unused_results,
clippy::all,
clippy::pedantic
)]
#![allow(
clippy::module_name_repetitions,
clippy::similar_names,
clippy::cast_precision_loss,
clippy::cast_possible_truncation,
clippy::cast_sign_loss,
clippy::float_cmp,
clippy::many_single_char_names
)]
pub mod cli;
pub mod data;
pub mod models;
pub use aprender::monte_carlo::{
engine, error, models as core_models, risk, MonteCarloError, Result,
};
pub mod prelude {
pub use aprender::monte_carlo::prelude::*;
pub use crate::cli::{Cli, Commands, OutputFormat};
pub use crate::data::{CsvLoader, Sp500Data};
pub use crate::models::BayesianRevenueModel;
}
#[cfg(test)]
mod tests {
use super::prelude::*;
#[test]
fn test_prelude_imports() {
let _rng = MonteCarloRng::new(42);
let _engine = MonteCarloEngine::reproducible(42);
let _horizon = TimeHorizon::years(1);
}
#[test]
fn test_sp500_data_available() {
let sp500 = Sp500Data::load();
assert!(sp500.len() > 1000, "Should have many months of data");
}
}