Added test for 2 vs 2. It fails... need to figure out why.

This commit is contained in:
2018-10-25 17:55:10 +02:00
parent eceaf8f6e0
commit e8aa60fcdd

View File

@@ -174,19 +174,22 @@ where
})
.collect::<Vec<_>>();
let epsilon = draw_margin(DRAW_PROBABILITY, BETA, 2.0);
let trunc_layer = team_diff_vars
.iter()
.enumerate()
.map(|(i, variable)| {
factor_id += 1;
let player_count = perf_vars
.iter()
.filter(|(_, team)| *team as usize == i || *team as usize == i + 1)
.count();
TruncateFactor::new(
&mut variable_arena,
factor_id,
*variable,
epsilon,
draw_margin(DRAW_PROBABILITY, BETA, player_count as f64),
ranks[i] == ranks[i + 1],
)
@@ -350,7 +353,7 @@ mod tests {
}
#[test]
fn test_rate_4vs4() {
fn test_rate_4_free_for_all() {
let alice = Rating::new(MU, SIGMA);
let bob = Rating::new(MU, SIGMA);
let chris = Rating::new(MU, SIGMA);
@@ -387,4 +390,26 @@ mod tests {
}
}
#[test]
fn test_rate_2vs2() {
let alice = Rating::new(MU, SIGMA);
let bob = Rating::new(MU, SIGMA);
let chris = Rating::new(MU, SIGMA);
let darren = Rating::new(MU, SIGMA);
let expected_ratings = vec![
Rating::new(28.108322399069035, 7.77436345109384),
Rating::new(28.108322399069035, 7.77436345109384),
Rating::new(21.891677600930958, 7.77436345109384),
Rating::new(21.891677600930958, 7.77436345109384),
];
let ratings = rate(&[(alice, 0), (bob, 0), (chris, 1), (darren, 1)], &[0, 1]);
for (rating, expected) in ratings.iter().zip(expected_ratings.iter()) {
assert_relative_eq!(rating, expected, epsilon = EPSILON);
}
}
}