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);
        }
        private FlashCard GetFlashCard()
        {
            TextAnserw textAnserw1 = new TextAnserw {
                Annotation = "TestAnnotation", Text = "SampleText1"
            };
            TextAnserw textAnserw2 = new TextAnserw {
                Annotation = "TestAnnotation", Text = "SampleText2"
            };
            FileAnserw fileAnserw1 = new FileAnserw {
                FileName = "TestFile.jpg", File = new byte[] { 1, 2, 3 }, Annotation = "TestAnnotation"
            };
            FileAnserw fileAnserw2 = new FileAnserw {
                FileName = "TestFile.jpg", File = new byte[] { 1, 2, 3 }, Annotation = "TestAnnotation"
            };
            Tag tag1 = new Tag {
                Tag1 = "TestTag111"
            };
            Tag tag2 = new Tag {
                Tag1 = "TestTag222"
            };
            FlashCardData flashCardData  = new FlashCardData();
            string        flashCardTitle = "UnitTest1";
            var           flashCard      = new FlashCard
            {
                Title       = flashCardTitle,
                FileAnserws = new List <FileAnserw> {
                    fileAnserw1, fileAnserw2
                },
                TextAnserws = new List <TextAnserw> {
                    textAnserw1, textAnserw2
                },
                Tags = new List <Tag> {
                    tag1, tag2
                },
                FlashCardData = flashCardData
            };

            return(flashCard);
        }
        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);
        }