示例#1
0
        public void ValidateWrongExpressionWithValidSubexpression()
        {
            string expression = "2 + 7 - 2 a 3 b";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsFalse(result);
        }
示例#2
0
        public void SetUp()
        {
            var validator       = new MathRegex();
            var expressionFixer = new ExpressionFixer(validator);

            this.lexer = new MathLexer(validator, expressionFixer);
        }
示例#3
0
        public void ValidateComplexWrongExpression()
        {
            string expression = "2 + 7 a 2 b 4";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsFalse(result);
        }
示例#4
0
        public void ValidateSimpleWrongExpression()
        {
            string expression = "2a7";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsFalse(result);
        }
示例#5
0
        public void ValidateFailsNoSpaces()
        {
            string expression = "2+7";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsFalse(result);
        }
示例#6
0
        public void ValidateComplexExpression()
        {
            string expression = "2 + 7 - 2 * 4";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsTrue(result);
        }
示例#7
0
        public void ValidateWithSpaces()
        {
            string expression = "2    +   287";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsTrue(result);
        }
示例#8
0
        public void ValidateWithSeveralOperatorsTogether()
        {
            string expression = "+ + 7";
            bool   result     = MathRegex.IsExpressionValid(expression);

            Assert.IsFalse(result);
        }
示例#9
0
        public void ValidateMoreThanOneDigitExpression()
        {
            string expression = "25 + 287";

            bool result = MathRegex.IsExpressionValid(expression);

            Assert.IsTrue(result);
        }
示例#10
0
        public void IsOperator()
        {
            string operators = "*+/-";

            foreach (char op in operators)
            {
                Assert.IsTrue(MathRegex.IsOperator(op.ToString()));
            }
        }
 public void SplitExpressionWhenOperatorAtEnd()
 {
     var validator = new MathRegex();
     var fixer = new ExpressionFixer(validator);
     var expressions = new List<string> {"2 +"};
     var result = fixer.FixExpressions(expressions);
     Assert.AreEqual(2, result.Count);
     Assert.IsTrue(result.Contains("2"));
     Assert.IsTrue(result.Contains("+"));
 }
示例#12
0
 public void SetUp()
 {
     var expressionValidator = new MathRegex();
     var expressionFixer = new ExpressionFixer(expressionValidator);
     this.lexer = new MathLexer(expressionValidator, expressionFixer);
     var limitsValidator = new LimitsValidator(-100, 100);
     var proxy = new CalculatorProxy(limitsValidator);
     var calculator = new Calculator();
     var operatorFactory = new OperatorFactory(proxy, calculator);
     this.parser = new MathParser(this.lexer, operatorFactory);
 }
示例#13
0
        public void ValidateSimpleExpressionWithAllOperations()
        {
            string operators  = "+-*/";
            string expression = String.Empty;

            foreach (char operatorChar in operators)
            {
                expression = "2 " + operatorChar + " 2";
                Assert.IsTrue(MathRegex.IsExpressionValid(expression), "Failure with operator: " + operatorChar);
            }
        }
示例#14
0
        public void SplitExpressionWhenOperatorAtEnd()
        {
            var validator   = new MathRegex();
            var fixer       = new ExpressionFixer(validator);
            var expressions = new List <string> {
                "2 +"
            };
            var result = fixer.FixExpressions(expressions);

            Assert.AreEqual(2, result.Count);
            Assert.IsTrue(result.Contains("2"));
            Assert.IsTrue(result.Contains("+"));
        }
示例#15
0
        public void SetUp()
        {
            var expressionValidator = new MathRegex();
            var expressionFixer     = new ExpressionFixer(expressionValidator);

            this.lexer = new MathLexer(expressionValidator, expressionFixer);
            var limitsValidator = new LimitsValidator(-100, 100);
            var proxy           = new CalculatorProxy(limitsValidator);
            var calculator      = new Calculator();
            var operatorFactory = new OperatorFactory(proxy, calculator);

            this.parser = new MathParser(this.lexer, operatorFactory);
        }
 public void SetUp()
 {
     this.expressionValidator = new MathRegex();
 }
示例#17
0
 public void ValidateWithNegativeNumbers()
 {
     Assert.IsTrue(MathRegex.IsExpressionValid("-7 + 1"));
 }
 public void SetUp()
 {
     this.expressionValidator = new MathRegex();
 }
示例#19
0
 public void SetUp()
 {
     var validator = new MathRegex();
     var expressionFixer = new ExpressionFixer(validator);
     this.lexer = new MathLexer(validator, expressionFixer);
 }
示例#20
0
 public void IsSubExpression()
 {
     Assert.IsTrue(MathRegex.IsSubExpression("2 + 2"));
 }
示例#21
0
 public void ValidateWithNegativeNumbersAtTheEnd()
 {
     Assert.IsTrue(MathRegex.IsExpressionValid("7 - -1"));
 }
示例#22
0
 public void IsNumber()
 {
     Assert.IsTrue(MathRegex.IsNumber("22"));
 }