test: trace completed risk observations in engine regression

This commit is contained in:
boris
2026-09-09 06:00:48 +08:00
parent a54489fe92
commit 29522b69fe
@@ -14708,11 +14708,13 @@ mod tests {
let result = engine.run().unwrap(); let result = engine.run().unwrap();
let records = rows.lock().unwrap(); let records = rows.lock().unwrap();
assert_eq!(records.len(), dates.len()); assert_eq!(records.len(), dates.len());
assert!(records.iter().any(|(_, decision)| decision.newly_triggered), "risk sessions={:?}",
records.iter().map(|(session, decision)| (session.date, session.start_unit_nav, session.end_unit_nav,
session.start_gross_exposure, session.end_gross_exposure, decision.trailing_unit_return, decision.target_exposure)).collect::<Vec<_>>());
assert!(result.fills.len() > 1, "fills={} orders={:?} diagnostics={:?}", result.fills.len(), assert!(result.fills.len() > 1, "fills={} orders={:?} diagnostics={:?}", result.fills.len(),
result.order_events.iter().take(4).collect::<Vec<_>>(), result.order_events.iter().take(4).collect::<Vec<_>>(),
result.equity_curve.iter().take(3).map(|row| &row.diagnostics).collect::<Vec<_>>()); result.equity_curve.iter().take(3).map(|row| &row.diagnostics).collect::<Vec<_>>());
assert_eq!(result.equity_curve[5].external_cash_flow, 10_000.0); assert_eq!(result.equity_curve[5].external_cash_flow, 10_000.0);
assert!(records.iter().any(|(_, decision)| decision.newly_triggered));
for ((session, decision), equity) in records.iter().zip(&result.equity_curve) { for ((session, decision), equity) in records.iter().zip(&result.equity_curve) {
assert_eq!(session.date, equity.date); assert_eq!(session.date, equity.date);
assert_eq!(session.end_unit_nav.to_bits(), equity.unit_nav.to_bits()); assert_eq!(session.end_unit_nav.to_bits(), equity.unit_nav.to_bits());