mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 06:22:22 -04:00
don't touch due cards either
This commit is contained in:
parent
ec1a4f7458
commit
fa5fca5941
2 changed files with 50 additions and 10 deletions
|
@ -746,15 +746,17 @@ did = ? and queue = 2 and due <= ? limit ?""",
|
|||
|
||||
def _rescheduleLapse(self, card):
|
||||
conf = self._lapseConf(card)
|
||||
card.lapses += 1
|
||||
card.lastIvl = card.ivl
|
||||
card.ivl = self._nextLapseIvl(card, conf)
|
||||
card.factor = max(1300, card.factor-200)
|
||||
card.due = self.today + card.ivl
|
||||
if self._resched(card):
|
||||
card.lapses += 1
|
||||
card.ivl = self._nextLapseIvl(card, conf)
|
||||
card.factor = max(1300, card.factor-200)
|
||||
card.due = self.today + card.ivl
|
||||
# put back in the learn queue?
|
||||
delay = 0
|
||||
if conf['delays']:
|
||||
card.odue = card.due
|
||||
if not card.odue:
|
||||
card.odue = card.due
|
||||
delay = self._delayForGrade(conf, 0)
|
||||
card.due = int(delay + time.time())
|
||||
card.left = len(conf['delays'])
|
||||
|
@ -772,10 +774,13 @@ did = ? and queue = 2 and due <= ? limit ?""",
|
|||
def _rescheduleRev(self, card, ease):
|
||||
# update interval
|
||||
card.lastIvl = card.ivl
|
||||
self._updateRevIvl(card, ease)
|
||||
# then the rest
|
||||
card.factor = max(1300, card.factor+[-150, 0, 150][ease-2])
|
||||
card.due = self.today + card.ivl
|
||||
if self._resched(card):
|
||||
self._updateRevIvl(card, ease)
|
||||
# then the rest
|
||||
card.factor = max(1300, card.factor+[-150, 0, 150][ease-2])
|
||||
card.due = self.today + card.ivl
|
||||
else:
|
||||
card.due = card.odue
|
||||
if card.odid:
|
||||
card.did = card.odid
|
||||
card.odid = 0
|
||||
|
|
|
@ -689,7 +689,42 @@ def test_cram_resched():
|
|||
c.load()
|
||||
assert c.ivl == 100
|
||||
assert c.due == d.sched.today + 25
|
||||
# due cards
|
||||
# due cards - pass
|
||||
c = cardcopy
|
||||
c.due = -25
|
||||
c.flush()
|
||||
d.sched.rebuildDyn(did)
|
||||
d.reset()
|
||||
c = d.sched.getCard()
|
||||
d.sched.answerCard(c, 3)
|
||||
d.sched.emptyDyn(did)
|
||||
c.load()
|
||||
assert c.ivl == 100
|
||||
assert c.due == -25
|
||||
# fail
|
||||
c = cardcopy
|
||||
c.due = -25
|
||||
c.flush()
|
||||
d.sched.rebuildDyn(did)
|
||||
d.reset()
|
||||
c = d.sched.getCard()
|
||||
d.sched.answerCard(c, 1)
|
||||
d.sched.emptyDyn(did)
|
||||
c.load()
|
||||
assert c.ivl == 100
|
||||
assert c.due == -25
|
||||
# fail with normal grad
|
||||
c = cardcopy
|
||||
c.due = -25
|
||||
c.flush()
|
||||
d.sched.rebuildDyn(did)
|
||||
d.reset()
|
||||
c = d.sched.getCard()
|
||||
d.sched.answerCard(c, 1)
|
||||
d.sched.answerCard(c, 3)
|
||||
c.load()
|
||||
assert c.ivl == 100
|
||||
assert c.due == -25
|
||||
|
||||
def test_adjIvl():
|
||||
d = getEmptyDeck()
|
||||
|
|
Loading…
Reference in a new issue