even if failed

This commit is contained in:
Damien Elmes 2012-05-24 17:51:49 +09:00
parent e3bb4a817e
commit ec1a4f7458
2 changed files with 27 additions and 3 deletions

View file

@ -506,12 +506,14 @@ did = ? and queue = 3 and due <= ? limit ?""",
else:
card.left = self._startingLeft(card)
if card.odid:
if 'mult' in conf:
resched = self._resched(card)
if 'mult' in conf and resched:
# review that's lapsed
card.ivl = max(1, card.ivl*conf['mult'])
else:
# new card; no ivl adjustment
pass
if resched:
card.odue = self.today + 1
delay = self._delayForGrade(conf, card.left)
if card.due < time.time():

View file

@ -667,7 +667,29 @@ def test_cram_resched():
assert c.ivl == 100
assert c.due == d.sched.today + 25
# check failure too
c = cardcopy
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 == d.sched.today + 25
# fail+grad early
c = cardcopy
c.flush()
d.sched.rebuildDyn(did)
d.reset()
c = d.sched.getCard()
d.sched.answerCard(c, 1)
d.sched.answerCard(c, 3)
d.sched.emptyDyn(did)
c.load()
assert c.ivl == 100
assert c.due == d.sched.today + 25
# due cards
def test_adjIvl():
d = getEmptyDeck()