public void GetRecallValueCheckIfYesterdayIsBeforeToday()
        {
            FlashCardData fcdToday     = new FlashCardData();
            FlashCardData fcdYesterday = new FlashCardData();

            fcdYesterday.CreationDate   = DateTime.Today.AddDays(-1);
            fcdYesterday.LastOccurrence = DateTime.Today.AddDays(-1);
            var flashCardMemorizer = new FlashCardMemorizer();
            int valToday           = flashCardMemorizer.GetRecallValue(fcdToday);
            int valYesterday       = flashCardMemorizer.GetRecallValue(fcdYesterday);

            Assert.IsTrue(valYesterday <= valToday);
        }
        public void GetRecallValueCheckIfReturnedValuesAreNotSame()
        {
            FlashCardData fcd1 = new FlashCardData();

            fcd1.CreationDate      = DateTime.Today.AddDays(-20);
            fcd1.LastOccurrence    = DateTime.Today.AddDays(-10);
            fcd1.SuccessfulAnserws = 1;
            FlashCardData fcd2 = new FlashCardData();
            var           flashCardMemorizer = new FlashCardMemorizer();
            int           val1 = flashCardMemorizer.GetRecallValue(fcd1);
            int           val2 = flashCardMemorizer.GetRecallValue(fcd2);

            Assert.IsTrue(val1 < val2);
        }
        public void GetRecallValueCheckIfFailedAreFirst()
        {
            FlashCardData fcdFail = new FlashCardData();

            fcdFail.LastOccurrence = DateTime.Today.AddDays(-1);
            FlashCardData fcdSuccess = new FlashCardData();

            fcdSuccess.LastOccurrence = DateTime.Today.AddDays(-1);
            fcdSuccess.LastResult     = true;
            var flashCardMemorzer = new FlashCardMemorizer();
            int valFail           = flashCardMemorzer.GetRecallValue(fcdFail);
            int valSuccess        = flashCardMemorzer.GetRecallValue(fcdSuccess);

            Assert.IsTrue(valFail <= valSuccess);

            //even if there is some very old pending
            fcdSuccess.LastOccurrence = DateTime.Today.AddDays(-100);
            fcdSuccess.CreationDate   = DateTime.Today.AddDays(-101);
            valSuccess = flashCardMemorzer.GetRecallValue(fcdSuccess);
            Assert.IsTrue(valFail <= valSuccess);
        }
        public void GetRecallValueCompareOrdianry()
        {
            FlashCardData fcd1 = new FlashCardData();

            fcd1.CreationDate      = DateTime.Today.AddDays(-10);
            fcd1.LastOccurrence    = DateTime.Today.AddDays(-2);
            fcd1.SuccessfulAnserws = 3;
            fcd1.LastResult        = true;
            FlashCardData fcd2 = new FlashCardData();

            fcd2.CreationDate      = DateTime.Today.AddDays(-10);
            fcd2.LastOccurrence    = DateTime.Today.AddDays(-1);
            fcd2.SuccessfulAnserws = 3;
            fcd2.LastResult        = true;
            var flashCardMemorizer = new FlashCardMemorizer();
            int val1 = flashCardMemorizer.GetRecallValue(fcd1);
            int val2 = flashCardMemorizer.GetRecallValue(fcd2);

            Assert.IsTrue(val1 <= val2);
            fcd2.SuccessfulAnserws = 1;
            val2 = flashCardMemorizer.GetRecallValue(fcd2);
            Assert.IsTrue(val1 >= val2);

            //fcd1 should be first beacuse it was memorized less times
            fcd1 = new FlashCardData();
            fcd1.CreationDate      = DateTime.Today.AddDays(-20);
            fcd1.LastOccurrence    = DateTime.Today.AddDays(-4);
            fcd1.SuccessfulAnserws = 5;
            fcd1.LastResult        = true;
            fcd2 = new FlashCardData();
            fcd2.CreationDate      = DateTime.Today.AddDays(-30);
            fcd2.LastOccurrence    = DateTime.Today.AddDays(-10);
            fcd2.SuccessfulAnserws = 7;
            fcd2.LastResult        = true;
            val1 = flashCardMemorizer.GetRecallValue(fcd1);
            val2 = flashCardMemorizer.GetRecallValue(fcd2);
            Assert.IsTrue(val1 <= val2);
        }