use of com.ichi2.libanki.sched.Sched in project AnkiChinaAndroid by ankichinateam.
the class SchedV2Test method ensureDeckTree.
@Test
public void ensureDeckTree() throws Exception {
for (String deckName : TEST_DECKS) {
addDeck(deckName);
}
AbstractSched sched = getCol().getSched();
List<DeckDueTreeNode> tree = sched.deckDueTree();
Assert.assertEquals("Tree has not the expected structure", expectedTree(getCol(), true), tree);
}
use of com.ichi2.libanki.sched.Sched in project AnkiChinaAndroid by ankichinateam.
the class SchedTest method ensureDeckTree.
@Test
public void ensureDeckTree() {
for (String deckName : TEST_DECKS) {
addDeck(deckName);
}
getCol().getSched().deckDueTree();
AbstractSched sched = getCol().getSched();
List<DeckDueTreeNode> tree = sched.deckDueTree();
Assert.assertEquals("Tree has not the expected structure", SchedV2Test.expectedTree(getCol(), false), tree);
}
use of com.ichi2.libanki.sched.Sched in project Anki-Android by ankidroid.
the class SchedTest method markNextCardAsGood.
private void markNextCardAsGood(Sched sched) {
Card toAnswer = sched.getCard();
assertThat(toAnswer, notNullValue());
// Good
sched.answerCard(toAnswer, BUTTON_TWO);
}
use of com.ichi2.libanki.sched.Sched in project Anki-Android by ankidroid.
the class SchedTest method test_ordcycleV1.
@Test
public void test_ordcycleV1() throws Exception {
Collection col = getColV1();
// add two more templates and set second active
Model m = col.getModels().current();
ModelManager mm = col.getModels();
JSONObject t = Models.newTemplate("Reverse");
t.put("qfmt", "{{Back}}");
t.put("afmt", "{{Front}}");
mm.addTemplateModChanged(m, t);
t = Models.newTemplate("f2");
t.put("qfmt", "{{Front}}");
t.put("afmt", "{{Back}}");
mm.addTemplateModChanged(m, t);
mm.save(m);
// create a new note; it should have 3 cards
Note note = col.newNote();
note.setItem("Front", "1");
note.setItem("Back", "1");
col.addNote(note);
assertEquals(3, col.cardCount());
col.reset();
// ordinals should arrive in order
AbstractSched sched = col.getSched();
Card c = sched.getCard();
// not upstream. But we are not expecting multiple getCard without review
sched.answerCard(c, sched.answerButtons(c) - 1);
waitForAsyncTasksToComplete();
assertEquals(0, c.getOrd());
c = sched.getCard();
// not upstream. But we are not expecting multiple getCard without review
sched.answerCard(c, sched.answerButtons(c) - 1);
waitForAsyncTasksToComplete();
assertEquals(1, c.getOrd());
c = sched.getCard();
// not upstream. But we are not expecting multiple getCard without review
sched.answerCard(c, sched.answerButtons(c) - 1);
assertEquals(2, c.getOrd());
}
use of com.ichi2.libanki.sched.Sched in project Anki-Android by ankidroid.
the class SchedV2Test method regression_test_preview.
@Test
public void regression_test_preview() throws Exception {
// "https://github.com/ankidroid/Anki-Android/issues/7285"
Collection col = getColV2();
DeckManager decks = col.getDecks();
AbstractSched sched = col.getSched();
addNoteUsingBasicModel("foo", "bar");
long did = addDynamicDeck("test");
Deck deck = decks.get(did);
deck.put("resched", false);
sched.rebuildDyn(did);
col.reset();
Card card;
for (int i = 0; i < 3; i++) {
advanceRobolectricLooperWithSleep();
card = sched.getCard();
assertNotNull(card);
sched.answerCard(card, BUTTON_ONE);
}
advanceRobolectricLooperWithSleep();
assertEquals(1, sched.lrnCount());
card = sched.getCard();
assertEquals(1, sched.counts(card).getLrn());
advanceRobolectricLooperWithSleep();
sched.answerCard(card, BUTTON_ONE);
assertDoesNotThrow(col::undo);
}
Aggregations