1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! Agent comparison framework for evaluating poker agents
//!
//! This module provides a formalized way to compare poker agents across
//! all possible matchups and positions. It tracks detailed statistics
//! and produces comprehensive reports.
//!
//! # Example
//!
//! ```no_run
//! use std::path::PathBuf;
//!
//! use rs_poker::arena::comparison::{ComparisonBuilder, ComparisonError};
//!
//! # #[tokio::main]
//! # async fn main() -> Result<(), ComparisonError> {
//! // Build a comparison with agents from config files
//! let comparison = ComparisonBuilder::new()
//! .num_games(1000)
//! .players_per_table(3)
//! .big_blind(10.0)
//! .small_blind(5.0)
//! .load_agents_from_dir("./agents/")?
//! .seed(42)
//! .build()?;
//!
//! // Run the comparison
//! let result = comparison.run().await?;
//!
//! // Get rankings
//! for (rank, (name, stats)) in result.get_rankings().iter().enumerate() {
//! println!("{}. {} - {:.2} bb/game", rank + 1, name, stats.profit_per_game);
//! }
//!
//! // Generate markdown report
//! let markdown = result.to_markdown();
//! println!("{}", markdown);
//!
//! // Save results to files
//! let output_dir = PathBuf::from("./results");
//! result.save_to_dir(&output_dir)?;
//! # Ok(())
//! # }
//! ```
pub use ComparisonBuilder;
pub use ComparisonConfig;
pub use ;
pub use ComparisonResult;
pub use ;
pub use ;