mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
Fix easy days causing load balancer to disproportionately schedule graduates to the furthest day (#3643)
* don't do easy days calculation if all days are the same ease
This commit is contained in:
parent
482874d4f0
commit
69e699dc13
1 changed files with 15 additions and 4 deletions
|
@ -219,12 +219,23 @@ impl LoadBalancer {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.unzip();
|
.unzip();
|
||||||
|
|
||||||
let easy_days_percentages = self.easy_days_percentages_by_preset.get(&deckconfig_id)?;
|
let easy_days_percentages = self.easy_days_percentages_by_preset.get(&deckconfig_id)?;
|
||||||
let percentages = weekdays
|
// check if easy days are in effect by seeing if all days have the same
|
||||||
|
// configuration. If all days are the same, we can skip out on calculating
|
||||||
|
// the distribution
|
||||||
|
let easy_days_are_all_the_same = easy_days_percentages
|
||||||
.iter()
|
.iter()
|
||||||
.map(|&wd| easy_days_percentages[wd])
|
.all(|day| easy_days_percentages[0] == *day);
|
||||||
.collect::<Vec<_>>();
|
let expected_distribution = if easy_days_are_all_the_same {
|
||||||
let expected_distribution = check_review_distribution(&review_counts, &percentages);
|
vec![1.0; weekdays.len()]
|
||||||
|
} else {
|
||||||
|
let percentages = weekdays
|
||||||
|
.iter()
|
||||||
|
.map(|&wd| easy_days_percentages[wd])
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
check_review_distribution(&review_counts, &percentages)
|
||||||
|
};
|
||||||
|
|
||||||
// calculate params for each day
|
// calculate params for each day
|
||||||
let intervals_and_params = interval_days
|
let intervals_and_params = interval_days
|
||||||
|
|
Loading…
Reference in a new issue