Search in sources :

Example 1 with Scheduler

use of org.liberty.android.fantastischmemo.scheduler.Scheduler in project AnyMemo by helloworld1.

the class QuizQueuingManagerTest method testUpdateCard.

@SmallTest
@Test
public void testUpdateCard() throws Exception {
    Scheduler mockScheduler = mock(Scheduler.class);
    // Create a quiz start the quiz size 3 from card 5
    QueueManager queueManager = new QuizQueueManager.Builder().setDbOpenHelper(helper).setQuizSize(3).setStartCardOrd(5).setScheduler(mockScheduler).build();
    Card card5 = queueManager.dequeue();
    queueManager.remove(card5);
    assertEquals(5, (int) card5.getOrdinal());
    when(mockScheduler.isCardLearned(card5.getLearningData())).thenReturn(true);
    queueManager.update(card5);
    Card card6 = queueManager.dequeue();
    queueManager.remove(card6);
    assertEquals(6, (int) card6.getOrdinal());
    when(mockScheduler.isCardLearned(card6.getLearningData())).thenReturn(false);
    queueManager.update(card6);
    Card card7 = queueManager.dequeue();
    queueManager.remove(card7);
    assertEquals(7, (int) card7.getOrdinal());
    when(mockScheduler.isCardLearned(card7.getLearningData())).thenReturn(true);
    queueManager.update(card7);
    // Now cards in the queue is the card we failed
    // and we succeed this time
    Card card6Again = queueManager.dequeue();
    queueManager.remove(card6Again);
    assertEquals(6, (int) card6Again.getOrdinal());
    when(mockScheduler.isCardLearned(card6.getLearningData())).thenReturn(true);
    queueManager.update(card6Again);
    // No cards in the queue
    Card nullCard = queueManager.dequeue();
    assertNull(nullCard);
}
Also used : Scheduler(org.liberty.android.fantastischmemo.scheduler.Scheduler) QuizQueueManager(org.liberty.android.fantastischmemo.queue.QuizQueueManager) QuizQueueManager(org.liberty.android.fantastischmemo.queue.QuizQueueManager) QueueManager(org.liberty.android.fantastischmemo.queue.QueueManager) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Example 2 with Scheduler

use of org.liberty.android.fantastischmemo.scheduler.Scheduler in project AnyMemo by helloworld1.

the class LearnQueuingManagerTest method testUpdate1.

@SmallTest
@Test
public void testUpdate1() throws Exception {
    Scheduler mockScheduler = mock(Scheduler.class);
    QueueManager queueManager = new LearnQueueManager.Builder(getContext(), TestHelper.SAMPLE_DB_PATH).setLearnQueueSize(3).setFilterCategory(null).setScheduler(mockScheduler).setCacheSize(50).build();
    Card c1 = queueManager.dequeue();
    queueManager.remove(c1);
    assertEquals(1, (int) c1.getId());
    when(mockScheduler.isCardLearned(c1.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c1);
    queueManager.update(c1);
    Card c2 = queueManager.dequeue();
    queueManager.remove(c2);
    assertEquals(2, (int) c2.getId());
    when(mockScheduler.isCardLearned(c2.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c2);
    queueManager.update(c2);
    Card c3 = queueManager.dequeue();
    queueManager.remove(c3);
    assertEquals(3, (int) c3.getId());
    when(mockScheduler.isCardLearned(c3.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c3);
    queueManager.update(c3);
    Card c4 = queueManager.dequeue();
    queueManager.remove(c4);
    assertEquals(4, (int) c4.getId());
    when(mockScheduler.isCardLearned(c4.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c4);
    queueManager.update(c4);
    Card c2Again = queueManager.dequeue();
    queueManager.remove(c2Again);
    assertEquals(2, (int) c2Again.getId());
    when(mockScheduler.isCardLearned(c2Again.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c2Again);
    queueManager.update(c2Again);
    Card c3Again = queueManager.dequeue();
    queueManager.remove(c3Again);
    assertEquals(3, (int) c3Again.getId());
    when(mockScheduler.isCardLearned(c3Again.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c3Again);
    queueManager.update(c3Again);
    Card c5 = queueManager.dequeue();
    queueManager.remove(c5);
    assertEquals(5, (int) c5.getId());
    when(mockScheduler.isCardLearned(c5.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c5);
    queueManager.update(c5);
    queueManager.release();
}
Also used : LearnQueueManager(org.liberty.android.fantastischmemo.queue.LearnQueueManager) Scheduler(org.liberty.android.fantastischmemo.scheduler.Scheduler) LearnQueueManager(org.liberty.android.fantastischmemo.queue.LearnQueueManager) QueueManager(org.liberty.android.fantastischmemo.queue.QueueManager) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Example 3 with Scheduler

use of org.liberty.android.fantastischmemo.scheduler.Scheduler in project AnyMemo by helloworld1.

the class LearnQueuingManagerTest method testUpdate3.

@SmallTest
@Test
public void testUpdate3() throws Exception {
    Scheduler mockScheduler = mock(Scheduler.class);
    QueueManager queueManager = new LearnQueueManager.Builder(getContext(), TestHelper.SAMPLE_DB_PATH).setLearnQueueSize(10).setFilterCategory(null).setScheduler(mockScheduler).setCacheSize(11).build();
    for (int i = 1; i <= 10; i++) {
        Card c = queueManager.dequeue();
        queueManager.remove(c);
        assertEquals(i, (int) c.getId());
        if (i == 1 || i == 3) {
            when(mockScheduler.isCardLearned(c.getLearningData())).thenReturn(false);
            updateFailureCardLearningData(c);
        } else {
            when(mockScheduler.isCardLearned(c.getLearningData())).thenReturn(true);
            updateSucceedCardLearningData(c);
        }
        queueManager.update(c);
    }
    Card c1 = queueManager.dequeue();
    queueManager.remove(c1);
    assertEquals(1, (int) c1.getId());
    when(mockScheduler.isCardLearned(c1.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c1);
    queueManager.update(c1);
    Card c11 = queueManager.dequeue();
    queueManager.remove(c11);
    assertEquals(11, (int) c11.getId());
    when(mockScheduler.isCardLearned(c11.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c11);
    queueManager.update(c11);
    Card c3 = queueManager.dequeue();
    queueManager.remove(c3);
    assertEquals(3, (int) c3.getId());
    when(mockScheduler.isCardLearned(c3.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c3);
    queueManager.update(c3);
    Card c12 = queueManager.dequeue();
    queueManager.remove(c12);
    assertEquals(12, (int) c12.getId());
    when(mockScheduler.isCardLearned(c12.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c12);
    queueManager.update(c12);
    Card c13 = queueManager.dequeue();
    queueManager.remove(c13);
    assertEquals(13, (int) c13.getId());
    when(mockScheduler.isCardLearned(c13.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c13);
    queueManager.update(c13);
    queueManager.release();
}
Also used : LearnQueueManager(org.liberty.android.fantastischmemo.queue.LearnQueueManager) Scheduler(org.liberty.android.fantastischmemo.scheduler.Scheduler) LearnQueueManager(org.liberty.android.fantastischmemo.queue.LearnQueueManager) QueueManager(org.liberty.android.fantastischmemo.queue.QueueManager) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Example 4 with Scheduler

use of org.liberty.android.fantastischmemo.scheduler.Scheduler in project AnyMemo by helloworld1.

the class LearnQueuingManagerTest method testUpdate2.

@SmallTest
@Test
public void testUpdate2() throws Exception {
    Scheduler mockScheduler = mock(Scheduler.class);
    QueueManager queueManager = new LearnQueueManager.Builder(getContext(), TestHelper.SAMPLE_DB_PATH).setLearnQueueSize(3).setFilterCategory(null).setScheduler(mockScheduler).setCacheSize(50).build();
    Card c1 = queueManager.dequeue();
    queueManager.remove(c1);
    assertEquals(1, (int) c1.getId());
    when(mockScheduler.isCardLearned(c1.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c1);
    queueManager.update(c1);
    Card c2 = queueManager.dequeue();
    queueManager.remove(c2);
    assertEquals(2, (int) c2.getId());
    when(mockScheduler.isCardLearned(c2.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c2);
    queueManager.update(c2);
    Card c3 = queueManager.dequeue();
    queueManager.remove(c3);
    assertEquals(3, (int) c3.getId());
    when(mockScheduler.isCardLearned(c3.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c3);
    queueManager.update(c3);
    Card c1Again = queueManager.dequeue();
    queueManager.remove(c1Again);
    assertEquals(1, (int) c1Again.getId());
    when(mockScheduler.isCardLearned(c1Again.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c1Again);
    queueManager.update(c1Again);
    Card c4 = queueManager.dequeue();
    queueManager.remove(c4);
    assertEquals(4, (int) c4.getId());
    when(mockScheduler.isCardLearned(c4.getLearningData())).thenReturn(true);
    updateSucceedCardLearningData(c4);
    queueManager.update(c4);
    Card c3Again = queueManager.dequeue();
    queueManager.remove(c3Again);
    assertEquals(3, (int) c3Again.getId());
    when(mockScheduler.isCardLearned(c3Again.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c3Again);
    queueManager.update(c3Again);
    Card c5 = queueManager.dequeue();
    queueManager.remove(c5);
    assertEquals(5, (int) c5.getId());
    when(mockScheduler.isCardLearned(c5.getLearningData())).thenReturn(false);
    updateFailureCardLearningData(c5);
    queueManager.update(c5);
    queueManager.release();
}
Also used : LearnQueueManager(org.liberty.android.fantastischmemo.queue.LearnQueueManager) Scheduler(org.liberty.android.fantastischmemo.scheduler.Scheduler) LearnQueueManager(org.liberty.android.fantastischmemo.queue.LearnQueueManager) QueueManager(org.liberty.android.fantastischmemo.queue.QueueManager) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Aggregations

SmallTest (android.support.test.filters.SmallTest)4 Test (org.junit.Test)4 Card (org.liberty.android.fantastischmemo.entity.Card)4 QueueManager (org.liberty.android.fantastischmemo.queue.QueueManager)4 Scheduler (org.liberty.android.fantastischmemo.scheduler.Scheduler)4 AbstractExistingDBTest (org.liberty.android.fantastischmemo.test.AbstractExistingDBTest)4 LearnQueueManager (org.liberty.android.fantastischmemo.queue.LearnQueueManager)3 QuizQueueManager (org.liberty.android.fantastischmemo.queue.QuizQueueManager)1