Esempio n. 1
0
 /// <summary>
 /// Manually create math question
 /// </summary>
 /// <param name="op">Operator to use</param>
 public MathQuestion(MathInterpreter interpreter)
 {
     if (Rand == null)
     {
         Rand = new Random(Environment.TickCount);
     }
     Interpreter = interpreter;
 }
Esempio n. 2
0
 /// <summary>
 /// Randomly generates a question
 /// </summary>
 public MathQuestion(DifficultyLevel level)
 {
     if (Rand == null)
     {
         Rand = new Random(Environment.TickCount);
     }
     Interpreter = MakeRandomInterpreter(level);
 }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedThreePartAdditionExpression()
        {
            const string  testExpression = "4012 + 550992 + 6672";
            const decimal expectedAnswer = 561676;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedExpression8()
        {
            const string  testExpression = "4 + 5 - 2 * (6 + 4)";
            const decimal expectedAnswer = -11;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedExpression4()
        {
            const string  testExpression = "-6 - (-4 * 5) * -1";
            const decimal expectedAnswer = -26;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedTripleNegativeMultWithParen()
        {
            const string  testExpression = "-6 - (-4 * 5)";
            const decimal expectedAnswer = 14;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedNegativeMult()
        {
            const string  testExpression = "6 - 4 * 5";
            const decimal expectedAnswer = -14;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedThreePartSubtractionExpression()
        {
            const string  testExpression = "8854201 - 33445 - 54";
            const decimal expectedAnswer = 8820702;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedDivisionWithDecimalResult()
        {
            const string  testExpression = "10 / 4";
            const decimal expectedAnswer = 2.5M;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedMultiplicationWithAdditionFour()
        {
            const string  testExpression = "3 + 5 * 6 + 3 * 10 + 5 + 5 * 1 + 8.5 - 2";
            const decimal expectedAnswer = 79.5M;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedComplexExpressionWithDecimal()
        {
            const string  testExpression = "4012.43 + 550992.111 - .02 + 324 - 9999999 - 10.00 - 4323 + .009 + 39393";
            const decimal expectedAnswer = -9409610.47M;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedExpressionWithDecimal()
        {
            const string  testExpression = "4012.43 + 550992.111";
            const decimal expectedAnswer = 555004.541M;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedComplexAdditionAndSubstrationExpression()
        {
            const string  testExpression = "8854201 + 4435 - 690 - 77744655 + 1 + 1+234   + 656432 - 90 - 90-99+1 +590333";
            const decimal expectedAnswer = -67639986;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedExpressionWithAdditionAndSubtractionExpression()
        {
            const string  testExpression = "8854201 + 4435 - 690";
            const decimal expectedAnswer = 8857946;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedNestedParenthetical3()
        {
            const string  testExpression = "5 * (-1 * ((6 + 2) - (10 * (5 - 3))))";
            const decimal expectedAnswer = 60;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedSimpleAdditionExpression()
        {
            const string  testExpression = "4 + 5";
            const decimal expectedAnswer = 9;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedDivisionAndMultiplication()
        {
            const string  testExpression = "10 / 2 * 5";
            const decimal expectedAnswer = 25;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedNegativeResultSubtractionExpression()
        {
            const string  testExpression = "33445 - 8854201";
            const decimal expectedAnswer = -8820756;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }
        public void GetAnswer_ReturnsCorrectAnswer_WhenProvidedMultiplicationWithAdditionAndParen()
        {
            const string  testExpression = "(3 + 5) * 6";
            const decimal expectedAnswer = 48;

            var sut    = new MathInterpreter();
            var result = sut.GetAnswer(testExpression);

            Assert.Equal(expectedAnswer, result);
        }