예제 #1
0
        public void CreateAndEvaluateInteger()
        {
            ConstantExpression expr = new ConstantExpression(1);

            Assert.AreEqual(1, expr.Evaluate(null));
            Assert.AreEqual(1, expr.Value);
        }
예제 #2
0
        public void CreateIntegerConstant()
        {
            var expr = new ConstantExpression(42);

            Assert.AreEqual(42, expr.Value);
            Assert.AreEqual(42, expr.Evaluate(null));
        }
예제 #3
0
        public void CreateAndEvaluateConstantExpression()
        {
            ConstantExpression expr = new ConstantExpression(1);

            Assert.AreEqual(1, expr.Value);
            Assert.AreEqual(1, expr.Evaluate(null));
            Assert.AreSame(TypeInfo.Int, expr.TypeInfo);
        }
        public void TestConstantExpression()
        {
            IExpressionNode constExpression = new ConstantExpression(5);

            var res = constExpression.Evaluate();

            Assert.AreEqual(res, 5);
        }
예제 #5
0
        public void EvaluateTest(string expression, short expectedResult)
        {
            var constantExpression = new ConstantExpression();

            int result = constantExpression.Evaluate(expression);

            Assert.That(result, Is.EqualTo(expectedResult));
        }
예제 #6
0
        public void ShouldEvaluateIntegerExpression()
        {
            ConstantExpression expression = new ConstantExpression(123);

            object value = expression.Evaluate(null);

            Assert.IsNotNull(value);
            Assert.IsInstanceOfType(value, typeof(int));
            Assert.AreEqual(123, (int)value);
        }
예제 #7
0
        public void ShouldEvaluateStringExpression()
        {
            ConstantExpression expression = new ConstantExpression("foo");

            object value = expression.Evaluate(null);

            Assert.IsNotNull(value);
            Assert.IsInstanceOfType(value, typeof(string));
            Assert.AreEqual("foo", (string)value);
        }
예제 #8
0
        public void ShouldEvaluateDateExpression()
        {
            DateTime           date       = new DateTime();
            ConstantExpression expression = new ConstantExpression(date);

            object value = expression.Evaluate(null);

            Assert.IsNotNull(value);
            Assert.IsInstanceOfType(value, typeof(DateTime));
            Assert.AreEqual(date, (DateTime)value);
        }
예제 #9
0
        public void ParseExpressionExpression()
        {
            IExpression expression = ParseExpression("expression 1+2");

            Assert.IsNotNull(expression);
            Assert.IsInstanceOfType(expression, typeof(ConstantExpression));

            ConstantExpression expr = (ConstantExpression)expression;

            Assert.IsInstanceOfType(expr.Evaluate(null), typeof(IExpression));
        }
예제 #10
0
        public void ParseCommandExpression()
        {
            IExpression expression = ParseExpression("command { x=1; y=2; }");

            Assert.IsNotNull(expression);
            Assert.IsInstanceOfType(expression, typeof(ConstantExpression));

            ConstantExpression expr = (ConstantExpression)expression;

            Assert.IsInstanceOfType(expr.Evaluate(null), typeof(ICommand));
        }
예제 #11
0
        public void ParseSimpleString()
        {
            Parser      parser = new Parser("\"foo\"");
            IExpression expr   = parser.ParseExpression();

            Assert.IsNotNull(expr);
            Assert.That(expr is ConstantExpression);

            ConstantExpression cexpr = (ConstantExpression)expr;

            Assert.AreEqual("foo", cexpr.Evaluate(null));

            Assert.IsNull(parser.ParseExpression());
        }
예제 #12
0
        public void ParseInteger()
        {
            Parser      parser = new Parser("123");
            IExpression expr   = parser.ParseExpression();

            Assert.IsNotNull(expr);
            Assert.That(expr is ConstantExpression);

            ConstantExpression cexpr = (ConstantExpression)expr;

            Assert.AreEqual(123, cexpr.Evaluate(null));

            Assert.IsNull(parser.ParseExpression());
        }
예제 #13
0
        public void SerializeDeserializeConstantExpression()
        {
            ConstantExpression expression = new ConstantExpression("foo");

            byte[] data   = this.Serialize(expression);
            object result = this.Deserialize(data);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ConstantExpression));

            ConstantExpression expression2 = (ConstantExpression)result;

            Assert.AreEqual("foo", expression2.Evaluate(null));
        }
예제 #14
0
        public void EvaluateStringConstantExpressions()
        {
            ConstantExpression expression = new ConstantExpression("foo");

            Assert.AreEqual("foo", expression.Evaluate(null));
        }
예제 #15
0
        public void EvaluateRealExpression()
        {
            ConstantExpression expression = new ConstantExpression(12.3);

            Assert.AreEqual(12.3, expression.Evaluate(new BindingEnvironment()));
        }
예제 #16
0
        public void EvaluateRealExpression()
        {
            ConstantExpression expression = new ConstantExpression(12.3);

            Assert.AreEqual(12.3, expression.Evaluate(new BindingEnvironment()));
        }
        public void EvaluateNull()
        {
            ConstantExpression expression = new ConstantExpression(null);

            Assert.IsNull(expression.Evaluate(null));
        }
예제 #18
0
        public void EvaluateStringConstantExpression()
        {
            ConstantExpression expr = new ConstantExpression("Adam");

            Assert.AreEqual("Adam", expr.Evaluate(null));
        }
예제 #19
0
        public void EvaluateIntegerConstantExpression()
        {
            IExpression expression = new ConstantExpression(1);

            Assert.AreEqual(1, expression.Evaluate());
        }
예제 #20
0
        public void EvaluateSimpleConstantExpression()
        {
            ConstantExpression expr = new ConstantExpression(10);

            Assert.AreEqual(10, expr.Evaluate(null));
        }
예제 #21
0
        public void EvaluateStringConstantExpressions()
        {
            ConstantExpression expression = new ConstantExpression("foo");

            Assert.AreEqual("foo", expression.Evaluate(null));
        }
예제 #22
0
        public void EvaluateBooleanConstantExpression()
        {
            ConstantExpression expression = new ConstantExpression(true);

            Assert.AreEqual(true, expression.Evaluate(null));
        }
예제 #23
0
        public void EvaluateIntegerExpression()
        {
            ConstantExpression expression = new ConstantExpression(123);

            Assert.AreEqual(123, expression.Evaluate(null));
        }
예제 #24
0
        public void EvaluateIntegerExpression()
        {
            ConstantExpression expression = new ConstantExpression(123);

            Assert.AreEqual(123, expression.Evaluate(null));
        }
예제 #25
0
        public void EvaluateBooleanConstantExpression()
        {
            ConstantExpression expression = new ConstantExpression(true);

            Assert.AreEqual(true, expression.Evaluate(null));
        }
예제 #26
0
        public void ErrorEvaluateTest(string expression)
        {
            var constantExpression = new ConstantExpression();

            Assert.Throws(typeof(ArithmeticException), () => constantExpression.Evaluate(expression));
        }