use openoutcry::{
replay_submission, run_backtest_capture, AgentTrajectory, BuyAndHold, CostModel, Dataset,
Window, CONTRACT_VERSION,
};
use sharpebench_core::{score_agent, ScoreConfig};
fn main() {
let data = Dataset::synthetic(4, 160, 7);
let window = Window {
start: 20,
end: 160,
};
let costs = CostModel::default();
let (_run, run_traj) = run_backtest_capture(&data, &mut BuyAndHold, window, 1, costs);
let trajectory = AgentTrajectory {
agent_id: "buy-and-hold".to_string(),
runs: vec![run_traj],
in_sample_trials: 0,
};
let submission = replay_submission(&data, &trajectory, costs);
let score = score_agent(&submission, &ScoreConfig::default());
println!(
"OpenOutcry contract v{CONTRACT_VERSION} — scored '{}':",
submission.agent_id
);
println!(
"{}",
serde_json::to_string_pretty(&score).expect("score serializes")
);
}