1pub mod market;
8pub mod resources;
9pub mod risk;
10pub mod optimization;
11pub mod trading;
12pub mod error;
13
14pub use error::{EconomyError, Result};
15pub use market::{MarketAnalyzer, MarketData, PricePoint};
16pub use resources::{ResourceManager, Resource, ResourceAllocation};
17pub use risk::{RiskAssessment, RiskFactor, RiskLevel};
18pub use optimization::{EconomicOptimizer, OptimizationStrategy, OptimizationResult};
19pub use trading::{TradingEngine, TradeOrder, TradeExecution};
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24
25 #[test]
26 fn test_economic_components_integration() {
27 let market_analyzer = MarketAnalyzer::new();
29 let resource_manager = ResourceManager::new();
30 let trading_engine = TradingEngine::new();
31
32 assert!(market_analyzer.get_market_data().is_ok());
33 assert_eq!(resource_manager.available_resources().len(), 0);
34 assert!(trading_engine.get_account_balance().is_ok());
35 }
36
37 #[test]
38 fn test_integration_workflow() {
39 let mut trading_engine = TradingEngine::new();
41 let mut market_analyzer = MarketAnalyzer::new();
42
43 trading_engine.set_balance("USD".to_string(), rust_decimal_macros::dec!(10000.0));
45 trading_engine.update_market_price("BTC".to_string(), rust_decimal_macros::dec!(50000.0));
46
47 let mut btc_data = market::MarketData::new("BTC".to_string());
49 btc_data.add_price_point(market::PricePoint::new(
50 rust_decimal_macros::dec!(50000.0),
51 rust_decimal_macros::dec!(100.0)
52 ));
53 market_analyzer.add_market_data("BTC".to_string(), btc_data);
54
55 let mut resource_manager = ResourceManager::new();
57 let resource = resources::Resource::new(
58 resources::ResourceType::Token("BTC".to_string()),
59 rust_decimal_macros::dec!(100.0),
60 "BTC".to_string(),
61 rust_decimal_macros::dec!(50000.0),
62 );
63 resource_manager.add_resource(resource);
64
65 assert_eq!(resource_manager.available_resources().len(), 1);
66 assert!(market_analyzer.get_market_data().is_ok());
67 assert!(trading_engine.get_account_balance().is_ok());
68 }
69}