mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Fix/incorrect memory state inference for incomplete review history (#3599)
make ci happy
This commit is contained in:
parent
67e7bf1660
commit
6874440cda
1 changed files with 7 additions and 2 deletions
|
@ -286,7 +286,8 @@ pub(crate) fn single_card_revlog_to_item(
|
||||||
}
|
}
|
||||||
let first_review = entries
|
let first_review = entries
|
||||||
.iter()
|
.iter()
|
||||||
.find(|e| e.button_chosen > 0)
|
// ignore manual and rescheduled revlogs and revlogs before the cutoff
|
||||||
|
.find(|e| e.button_chosen > 0 && e.id.0 >= ignore_revlogs_before.0)
|
||||||
.map(|e| FirstReview {
|
.map(|e| FirstReview {
|
||||||
interval: e.interval.max(1) as f32,
|
interval: e.interval.max(1) as f32,
|
||||||
ease_factor: if e.ease_factor == 0 {
|
ease_factor: if e.ease_factor == 0 {
|
||||||
|
@ -307,11 +308,15 @@ pub(crate) fn single_card_revlog_to_item(
|
||||||
}))
|
}))
|
||||||
} else if let Some(first_review) = first_review {
|
} else if let Some(first_review) = first_review {
|
||||||
// the revlog has been truncated, but not fully
|
// the revlog has been truncated, but not fully
|
||||||
let starting_state = fsrs.memory_state_from_sm2(
|
let mut starting_state = fsrs.memory_state_from_sm2(
|
||||||
first_review.ease_factor,
|
first_review.ease_factor,
|
||||||
first_review.interval,
|
first_review.interval,
|
||||||
historical_retention,
|
historical_retention,
|
||||||
)?;
|
)?;
|
||||||
|
// if the ease factor is less than 1.1, the revlog entry is generated by FSRS
|
||||||
|
if first_review.ease_factor <= 1.1 {
|
||||||
|
starting_state.difficulty = (first_review.ease_factor - 0.1) * 9.0 + 1.0;
|
||||||
|
}
|
||||||
item.reviews.remove(0);
|
item.reviews.remove(0);
|
||||||
if item.reviews.is_empty() {
|
if item.reviews.is_empty() {
|
||||||
Ok(None)
|
Ok(None)
|
||||||
|
|
Loading…
Reference in a new issue