From 699839188baada5aa07729284319fa7150cc1dd3 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 23 Sep 2011 14:55:20 +0900 Subject: [PATCH] ensure we give correct intervals for new cards --- anki/sched.py | 5 ++++- tests/test_sched.py | 18 +++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/anki/sched.py b/anki/sched.py index ed3892949..38107a104 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -754,7 +754,10 @@ gid in %s and queue = 2 and due <= :lim %s limit %d""" % ( # early removal return self._graduatingIvl(card, conf, True) * 86400 else: - left = card.left - 1 + if card.queue == 0: + left = self._startingLeft(card) - 1 + else: + left = card.left - 1 if left <= 0: # graduate return self._graduatingIvl(card, conf, False) * 86400 diff --git a/tests/test_sched.py b/tests/test_sched.py index ba357ca6c..839df0b9a 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -299,23 +299,27 @@ def test_nextIvl(): f = d.newFact() f['Front'] = u"one"; f['Back'] = u"two" d.addFact(f) - c = f.cards()[0] + d.reset() + c = d.sched.getCard() d.sched._cardConf(c)['new']['delays'] = [0.5, 3, 10] d.sched._cardConf(c)['lapse']['delays'] = [0.5, 3, 10] - # cards in learning + # new cards ################################################## - c.left = 3 ni = d.sched.nextIvl assert ni(c, 1) == 30 assert ni(c, 2) == 180 - # removal is 4 days assert ni(c, 3) == 4*86400 - c.left -= 1 + d.sched.answerCard(c, 1) + # cards in learning + ################################################## + assert ni(c, 1) == 30 + assert ni(c, 2) == 180 + assert ni(c, 3) == 4*86400 + d.sched.answerCard(c, 2) assert ni(c, 1) == 30 assert ni(c, 2) == 600 - # no first time bonus assert ni(c, 3) == 4*86400 - c.left = 1 + d.sched.answerCard(c, 2) # normal graduation is tomorrow assert ni(c, 2) == 1*86400 assert ni(c, 3) == 4*86400