Пример #1
0
        public void IntConstructorSingleTableReturnsSelectedQuizMultiple()
        {
            // Arrange
            const int testMultiple = 5;
            var       engine       = new MultiplicationEngine(new[] { testMultiple });
            var       p            = engine.CreateRandomMultiplicationProblem();

            // Act
            int multiple = p.Multiple;

            // Assert
            Assert.AreEqual((int)testMultiple, multiple);
            Assert.IsFalse(p.IsAnswered);
        }
Пример #2
0
        public void IntConstructorMultipleTableReturnsSelectedQuizMultiple()
        {
            // Arrange
            int[] testMultiples = new[] { 2, 4, 8 };
            var   engine        = new MultiplicationEngine(testMultiples);
            var   p             = engine.CreateRandomMultiplicationProblem();

            // Act
            int multiple = p.Multiple;

            // Assert
            Assert.IsTrue(new List <int>(testMultiples).Contains(multiple));
            Assert.IsFalse(p.IsAnswered);
        }
Пример #3
0
        public void IntConstructorSingleTableEvaluateReturnsTrueWhenAnswerIsCorrect()
        {
            // Arrange
            const int testMultiple = 5;
            var       engine       = new MultiplicationEngine(new[] { testMultiple });
            var       p            = engine.CreateRandomMultiplicationProblem();

            p.Answer = p.Multiple * p.Multiplier;

            // Act
            bool result = engine.Evaluate(p);

            // Assert
            Assert.IsTrue(p.IsAnswered);
            Assert.IsTrue(result);
        }
Пример #4
0
        public void EnumConstructorSingleTableEvaluateReturnsFalseWhenAnswerIsNotCorrect()
        {
            // Arrange
            const MultiplicationTable testMultiple = MultiplicationTable.Five;
            var engine = new MultiplicationEngine(new[] { testMultiple });
            var p      = engine.CreateRandomMultiplicationProblem();

            p.Answer = 33; // just a number that is not a multiple of testMultiple

            // Act
            bool result = engine.Evaluate(p);

            // Assert
            Assert.IsTrue(p.IsAnswered);
            Assert.IsFalse(result);
        }
Пример #5
0
        private IEnumerable <MultiplicationResult> EvaluateAnswers()
        {
            var results = new List <MultiplicationResult>();

            // get the problems from session
            var answerList = (List <MultiplicationProblem>)HttpContext.Current.Session[GetSessionKey()];

            if (answerList != null && answerList.Count > 0)
            {
                // create an engine
                var engine = new MultiplicationEngine((IEnumerable <int>)HttpContext.Current.Session[QuizMultiplesSessionKey]);


                foreach (var answer in answerList)
                {
                    results.Add(new MultiplicationResult(answer, engine));
                }

                //Save to DB now
                SaveResultToDb(results);
            }

            return(results);
        }
Пример #6
0
        public MultiplicationProblem GetProblem()
        {
            var engine = new MultiplicationEngine((IEnumerable <int>)HttpContext.Current.Session[QuizMultiplesSessionKey]);

            return(engine.CreateRandomMultiplicationProblem());
        }