deckCounts -> deckDue

This commit is contained in:
Damien Elmes 2011-11-24 17:04:26 +09:00
parent fae153c2af
commit daea038aa4
2 changed files with 10 additions and 16 deletions

View file

@ -117,10 +117,10 @@ order by due""" % self._deckLimit(),
g[key][1] += cnt g[key][1] += cnt
self.col.decks.save(g) self.col.decks.save(g)
# Deck counts # Deck list
########################################################################## ##########################################################################
def deckCounts(self): def deckDueList(self):
"Returns [deckname, did, hasDue, hasNew]" "Returns [deckname, did, hasDue, hasNew]"
# find decks with 1 or more due cards # find decks with 1 or more due cards
dids = {} dids = {}
@ -131,14 +131,8 @@ order by due""" % self._deckLimit(),
return [[grp['name'], int(did)]+dids[int(did)] #.get(int(did)) return [[grp['name'], int(did)]+dids[int(did)] #.get(int(did))
for (did, grp) in self.col.decks.decks.items()] for (did, grp) in self.col.decks.decks.items()]
def deckCountTree(self): def deckDueTree(self):
return self._groupChildren(self.deckCounts()) return self._groupChildren(self.deckDueList())
def deckTree(self):
"Like the count tree without the counts. Faster."
return self._groupChildren(
[[grp['name'], int(did), 0, 0, 0]
for (did, grp) in self.col.decks.decks.items()])
def _groupChildren(self, grps): def _groupChildren(self, grps):
# first, split the group names into components # first, split the group names into components

View file

@ -753,7 +753,7 @@ def test_collapse():
d.sched.answerCard(c, 3) d.sched.answerCard(c, 3)
assert not d.sched.getCard() assert not d.sched.getCard()
def test_deckCounts(): def test_deckDue():
d = getEmptyDeck() d = getEmptyDeck()
# add a note with default deck # add a note with default deck
f = d.newNote() f = d.newNote()
@ -781,14 +781,14 @@ def test_deckCounts():
d.addNote(f) d.addNote(f)
d.reset() d.reset()
assert len(d.decks.decks) == 5 assert len(d.decks.decks) == 5
cnts = d.sched.deckCounts() cnts = d.sched.deckDueList()
cnts.sort() cnts.sort()
assert cnts[0] == ["Default", 1, 0, 1] assert cnts[0] == ["Default", 1, 0, 1]
assert cnts[1] == ["Default::1", default1, 1, 0] assert cnts[1] == ["Default::1", default1, 1, 0]
assert cnts[2] == ["foo", d.decks.id("foo"), 0, 0] assert cnts[2] == ["foo", d.decks.id("foo"), 0, 0]
assert cnts[3] == ["foo::bar", foobar, 0, 1] assert cnts[3] == ["foo::bar", foobar, 0, 1]
assert cnts[4] == ["foo::baz", foobaz, 0, 1] assert cnts[4] == ["foo::baz", foobaz, 0, 1]
tree = d.sched.deckCountTree() tree = d.sched.deckDueTree()
assert tree[0][0] == "Default" assert tree[0][0] == "Default"
# sum of child and parent # sum of child and parent
assert tree[0][1] == 1 assert tree[0][1] == 1
@ -801,15 +801,15 @@ def test_deckCounts():
assert tree[0][4][0][3] == 0 assert tree[0][4][0][3] == 0
# code should not fail if a card has an invalid deck # code should not fail if a card has an invalid deck
c.did = 12345; c.flush() c.did = 12345; c.flush()
d.sched.deckCounts() d.sched.deckDueList()
d.sched.deckCountTree() d.sched.deckDueTree()
def test_deckTree(): def test_deckTree():
d = getEmptyDeck() d = getEmptyDeck()
d.decks.id("new::b::c") d.decks.id("new::b::c")
d.decks.id("new2") d.decks.id("new2")
# new should not appear twice in tree # new should not appear twice in tree
names = [x[0] for x in d.sched.deckCountTree()] names = [x[0] for x in d.sched.deckDueTree()]
names.remove("new") names.remove("new")
assert "new" not in names assert "new" not in names