Update test to use builder

This commit is contained in:
2022-06-23 07:44:34 +02:00
parent 73b9cabac8
commit ba2f8cffdc

View File

@@ -116,6 +116,25 @@ pub struct History {
iterations: usize,
}
impl Default for History {
fn default() -> Self {
Self {
size: 0,
batches: Vec::new(),
agents: HashMap::new(),
time: true,
mu: MU,
sigma: SIGMA,
beta: BETA,
gamma: GAMMA,
p_draw: P_DRAW,
online: false,
epsilon: EPSILON,
iterations: ITERATIONS,
}
}
}
impl History {
pub fn builder() -> HistoryBuilder {
HistoryBuilder::default()
@@ -595,7 +614,7 @@ mod tests {
);
}
let mut h = History::builder().build();
let mut h = History::default();
h.add_events(composition, results, vec![1, 2, 3], vec![], priors);
@@ -649,7 +668,7 @@ mod tests {
priors.insert(k.to_string(), player);
}
let mut h1 = History::builder().build();
let mut h1 = History::default();
h1.add_events(composition, results, times, vec![], priors);
@@ -740,7 +759,7 @@ mod tests {
priors.insert(k.to_string(), player);
}
let mut h = History::builder().build();
let mut h = History::default();
h.add_events(composition, results, times, vec![], priors);
h.convergence(ITERATIONS, EPSILON, false);
@@ -774,21 +793,17 @@ mod tests {
];
let results = vec![vec![1.0, 0.0], vec![0.0, 1.0], vec![1.0, 0.0]];
let mut h = History::new(
composition,
results,
vec![],
vec![],
HashMap::new(),
25.0,
25.0 / 3.0,
25.0 / 6.0,
25.0 / 300.0,
0.0,
false,
);
let mut h = History::builder()
.mu(25.0)
.sigma(25.0 / 3.0)
.beta(25.0 / 6.0)
.gamma(25.0 / 300.0)
.time(false)
.build();
let (_step, _i) = h.convergence(ITERATIONS, EPSILON, false);
h.add_events(composition, results, vec![], vec![], HashMap::new());
h.convergence(ITERATIONS, EPSILON, false);
assert_eq!(h.batches[2].skills["b"].elapsed, 1);
assert_eq!(h.batches[2].skills["c"].elapsed, 1);
@@ -819,19 +834,15 @@ mod tests {
];
let results = vec![vec![1.0, 0.0], vec![0.0, 1.0], vec![1.0, 0.0]];
let mut h = History::new(
composition,
results,
vec![],
vec![],
HashMap::new(),
0.0,
6.0,
1.0,
0.0,
0.0,
false,
);
let mut h = History::builder()
.mu(0.0)
.sigma(6.0)
.beta(1.0)
.gamma(0.0)
.time(false)
.build();
h.add_events(composition, results, vec![], vec![], HashMap::new());
let trueskill_log_evidence = h.log_evidence(false, &vec![]);
let trueskill_log_evidence_online = h.log_evidence(true, &vec![]);
@@ -904,21 +915,23 @@ mod tests {
];
let results = vec![vec![1.0, 0.0], vec![0.0, 1.0], vec![1.0, 0.0]];
let mut h = History::new(
let mut h = History::builder()
.mu(0.0)
.sigma(2.0)
.beta(1.0)
.gamma(0.0)
.time(false)
.build();
h.add_events(
composition.clone(),
results.clone(),
vec![],
vec![],
HashMap::new(),
0.0,
2.0,
1.0,
0.0,
0.0,
false,
);
let (_step, _i) = h.convergence(ITERATIONS, EPSILON, false);
h.convergence(ITERATIONS, EPSILON, false);
assert_eq!(h.batches[2].skills["b"].elapsed, 1);
assert_eq!(h.batches[2].skills["c"].elapsed, 1);
@@ -984,20 +997,6 @@ mod tests {
#[test]
fn test_only_add_events() {
let mut h = History::new(
vec![],
vec![],
vec![],
vec![],
HashMap::new(),
0.0,
2.0,
1.0,
0.0,
0.0,
false,
);
let composition = vec![
vec![vec!["a"], vec!["b"]],
vec![vec!["a"], vec!["c"]],
@@ -1005,6 +1004,14 @@ mod tests {
];
let results = vec![vec![1.0, 0.0], vec![0.0, 1.0], vec![1.0, 0.0]];
let mut h = History::builder()
.mu(0.0)
.sigma(2.0)
.beta(1.0)
.gamma(0.0)
.time(false)
.build();
h.add_events(
composition.clone(),
results.clone(),
@@ -1013,7 +1020,7 @@ mod tests {
HashMap::new(),
);
let (_step, _i) = h.convergence(ITERATIONS, EPSILON, false);
h.convergence(ITERATIONS, EPSILON, false);
assert_eq!(h.batches[2].skills["b"].elapsed, 1);
assert_eq!(h.batches[2].skills["c"].elapsed, 1);
@@ -1081,19 +1088,9 @@ mod tests {
fn test_log_evidence() {
let composition = vec![vec![vec!["a"], vec!["b"]], vec![vec!["b"], vec!["a"]]];
let mut h = History::new(
composition.clone(),
vec![],
vec![],
vec![],
HashMap::new(),
MU,
SIGMA,
BETA,
GAMMA,
P_DRAW,
false,
);
let mut h = History::builder().time(false).build();
h.add_events(composition.clone(), vec![], vec![], vec![], HashMap::new());
let p_d_m_2 = h.log_evidence(false, &vec![]).exp() * 2.0;
@@ -1130,19 +1127,9 @@ mod tests {
epsilon = 0.00001
);
let mut h = History::new(
composition,
vec![],
vec![],
vec![],
HashMap::new(),
MU,
SIGMA,
BETA,
GAMMA,
P_DRAW,
true,
);
let mut h = History::builder().time(false).build();
h.add_events(composition, vec![], vec![], vec![], HashMap::new());
assert_ulps_eq!(
((0.5f64 * 0.1765).ln() / 2.0).exp(),
@@ -1160,18 +1147,19 @@ mod tests {
];
let results = vec![vec![1.0, 0.0], vec![0.0, 1.0], vec![1.0, 0.0]];
let mut h = History::new(
let mut h = History::builder()
.mu(0.0)
.sigma(2.0)
.beta(1.0)
.gamma(0.0)
.build();
h.add_events(
composition.clone(),
results.clone(),
vec![0, 10, 20],
vec![],
HashMap::new(),
0.0,
2.0,
1.0,
0.0,
0.0,
false,
);
h.convergence(ITERATIONS, EPSILON, false);
@@ -1259,18 +1247,19 @@ mod tests {
vec![vec!["b"], vec!["c"]],
];
let mut h = History::new(
let mut h = History::builder()
.mu(0.0)
.sigma(2.0)
.beta(1.0)
.gamma(0.0)
.build();
h.add_events(
composition.clone(),
vec![],
vec![0, 10, 20],
vec![],
HashMap::new(),
0.0,
2.0,
1.0,
0.0,
0.0,
false,
);
h.convergence(ITERATIONS, EPSILON, false);
@@ -1350,19 +1339,15 @@ mod tests {
let composition = vec![vec![vec!["a"], vec!["b"]], vec![vec!["b"], vec!["a"]]];
let weights = vec![vec![vec![5.0], vec![4.0]], vec![vec![5.0], vec![4.0]]];
let mut h = History::new(
composition.clone(),
vec![],
vec![],
weights,
HashMap::new(),
2.0,
6.0,
1.0,
0.0,
0.0,
false,
);
let mut h = History::builder()
.mu(2.0)
.sigma(6.0)
.beta(1.0)
.gamma(0.0)
.time(false)
.build();
h.add_events(composition.clone(), vec![], vec![], weights, HashMap::new());
let lc = h.learning_curves();