use of org.liberty.android.fantastischmemo.entity.LearningData in project AnyMemo by helloworld1.
the class DefaultSchedulerTest method testScheduleNewCardFailure.
@SmallTest
@Test
public void testScheduleNewCardFailure() {
LearningData newLd = defaultScheduler.schedule(newCardLearningData, 0, false);
assertTrue(defaultScheduler.isCardForReview(newLd));
assertFalse(defaultScheduler.isCardNew(newLd));
assertFalse(defaultScheduler.isCardLearned(newLd));
assertEquals(0, (int) newLd.getGrade());
}
use of org.liberty.android.fantastischmemo.entity.LearningData in project AnyMemo by helloworld1.
the class CardDaoTest method testGetCardsForReviewExclusionList.
@SmallTest
@Test
public void testGetCardsForReviewExclusionList() {
// Setup cards that is schedule for review
CardDao cardDao = helper.getCardDao();
Card c13 = cardDao.queryForId(13);
Card c14 = cardDao.queryForId(14);
Card c15 = cardDao.queryForId(15);
LearningDataDao learningDataDao = helper.getLearningDataDao();
Date testDate = new Date((new Date().getTime() - 1));
learningDataDao.refresh(c13.getLearningData());
LearningData c13Ld = c13.getLearningData();
c13Ld.setAcqReps(1);
c13Ld.setNextLearnDate(testDate);
c13Ld.setEasiness((float) 2.8);
learningDataDao.update(c13Ld);
learningDataDao.refresh(c14.getLearningData());
LearningData c14Ld = c14.getLearningData();
c14Ld.setAcqReps(1);
c14Ld.setNextLearnDate(testDate);
c14Ld.setEasiness((float) 2.6);
learningDataDao.update(c14Ld);
learningDataDao.refresh(c15.getLearningData());
LearningData c15Ld = c15.getLearningData();
c15Ld.setAcqReps(1);
c15Ld.setNextLearnDate(testDate);
c15Ld.setEasiness((float) 2.6);
learningDataDao.update(c15Ld);
// Create exclusion list
List<Card> exclusionList = new ArrayList<Card>();
exclusionList.add(c13);
exclusionList.add(c15);
List<Card> cards = cardDao.getCardsForReview(null, exclusionList, 50, ReviewOrdering.HardestFirst);
// Only card 14 is there
assertEquals(1, cards.size());
assertEquals(14, (int) cards.get(0).getId());
}
use of org.liberty.android.fantastischmemo.entity.LearningData in project AnyMemo by helloworld1.
the class CardDaoImpl method getNewCards.
public List<Card> getNewCards(Category filterCategory, Iterable<Card> exclusion, int limit) {
try {
LearningDataDao learningDataDao = getHelper().getLearningDataDao();
CategoryDao categoryDao = getHelper().getCategoryDao();
QueryBuilder<LearningData, Integer> learnQb = learningDataDao.queryBuilder();
learnQb.selectColumns("id");
learnQb.where().eq("acqReps", "0");
QueryBuilder<Card, Integer> cardQb = this.queryBuilder();
// The "isNotNull" statement is dummy so the "and()" can be cascaded
// for the following conditions
Where<Card, Integer> where = cardQb.where().isNotNull("learningData_id");
if (filterCategory != null) {
where.and().eq("category_id", filterCategory.getId());
}
if (exclusion != null) {
List<Integer> exclusionList = new ArrayList<Integer>();
for (Card c : exclusion) {
exclusionList.add(c.getId());
}
where.and().notIn("id", exclusionList);
}
cardQb.setWhere(where);
cardQb.join(learnQb).orderByRaw("cards.ordinal").limit((long) limit);
List<Card> cs = cardQb.query();
for (Card c : cs) {
categoryDao.refresh(c.getCategory());
learningDataDao.refresh(c.getLearningData());
}
return cs;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
use of org.liberty.android.fantastischmemo.entity.LearningData in project AnyMemo by helloworld1.
the class LearningDataDaoImpl method resetLearningData.
public void resetLearningData(LearningData ld) {
ld.cloneFromLearningData(new LearningData());
update(ld);
}
use of org.liberty.android.fantastischmemo.entity.LearningData in project AnyMemo by helloworld1.
the class CardListActivity method markAsForgotten.
private void markAsForgotten(Card card) {
LearningData newLd = scheduler.schedule(card.getLearningData(), 1, schedulingAlgorithmParameters.getEnableNoise());
dbOpenHelper.getLearningDataDao().updateLearningData(newLd);
card.setLearningData(newLd);
cardListAdapter.notifyDataSetChanged();
}
Aggregations