handle the case where learning cards have a grade higher than their config

This commit is contained in:
Damien Elmes 2011-04-24 11:45:26 +09:00
parent 0d6064b933
commit 754dcef4f7
2 changed files with 19 additions and 1 deletions

View file

@ -327,7 +327,11 @@ limit %d""" % (self._groupLimit(), self.reportLimit), lim=self.dayCutoff)
self._logLrn(card, ease, conf, leaving, type) self._logLrn(card, ease, conf, leaving, type)
def _delayForGrade(self, conf, grade): def _delayForGrade(self, conf, grade):
return conf['delays'][grade]*60 try:
delay = conf['delays'][grade]
except IndexError:
delay = conf['delays'][-1]
return delay*60
def _lrnConf(self, card): def _lrnConf(self, card):
conf = self._cardConf(card) conf = self._cardConf(card)

View file

@ -71,6 +71,20 @@ def test_newOrder():
# cards should be sorted by id # cards should be sorted by id
assert d.sched.newQueue == list(reversed(sorted(d.sched.newQueue))) assert d.sched.newQueue == list(reversed(sorted(d.sched.newQueue)))
def test_newBoxes():
d = getEmptyDeck()
f = d.newFact()
f['Front'] = u"one"
d.addFact(f)
d.reset()
c = d.sched.getCard()
d.sched.answerCard(c, 2)
d.sched.answerCard(c, 2)
assert c.grade == 2
d.sched._cardConf(c)['new']['delays'] = [0.5]
# should handle gracefully
d.sched.answerCard(c, 2)
def test_learn(): def test_learn():
d = getEmptyDeck() d = getEmptyDeck()
# add a fact # add a fact