예제 #1
0
 public void AddStrings()
 {
     var e = Expression.Parse ("\"3\" + \"2\"");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.AreEqual ("32", v);
 }
예제 #2
0
 public void Add()
 {
     var e = Expression.Parse ("3 + 2");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.AreEqual (5, v);
 }
예제 #3
0
 public void DividePromote()
 {
     var e = Expression.Parse ("3.0 / 2");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.AreEqual (1.5, v);
 }
예제 #4
0
 public void Multiply()
 {
     var e = Expression.Parse ("3 * 2");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.AreEqual (6, v);
 }
예제 #5
0
        public void UnaryMinus()
        {
            var e   = Expression.Parse("-3");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.AreEqual(-3, v);
        }
예제 #6
0
        public void Divide()
        {
            var e   = Expression.Parse("3 / 2");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.AreEqual(1, v);
        }
예제 #7
0
        public void Subtract()
        {
            var e   = Expression.Parse("3 - 2");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.AreEqual(1, v);
        }
예제 #8
0
        public void Multiply()
        {
            var e   = Expression.Parse("3 * 2");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.AreEqual(6, v);
        }
예제 #9
0
        public void Add()
        {
            var e   = Expression.Parse("3 + 2");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.AreEqual(5, v);
        }
예제 #10
0
        public void AddStrings()
        {
            var e   = Expression.Parse("\"3\" + \"2\"");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.AreEqual("32", v);
        }
예제 #11
0
        public void ObjectLiteralMath()
        {
            var e   = (ObjectLiteralExpression)Expression.Parse("{a:3-2}");
            var env = new ObjectEvalEnv();
            var v   = e.Assignments[0].Value.Eval(env);

            Assert.AreEqual(1, v);
        }
예제 #12
0
        public void NotEqual()
        {
            var e   = Expression.Parse("3 != 2");
            var env = new ObjectEvalEnv();
            var v   = e.Eval(env);

            Assert.IsTrue((bool)v);
        }
예제 #13
0
        public void ObjectLiteralWithNewArg()
        {
            var e = Expression.Parse("new (\"Frank\") { Age = 42 }");

            Assert.IsInstanceOfType(e, typeof(ObjectLiteralExpression));

            var env = new ObjectEvalEnv(null, typeof(TestObject));
            var v   = e.Eval(env);

            Assert.IsInstanceOfType(v, typeof(TestObject));
            var o = (TestObject)v;

            Assert.AreEqual("Frank", o.Name);
            Assert.AreEqual(42, o.Age);
        }
예제 #14
0
        public void ObjectLiteralWithNewArg()
        {
            var e = Expression.Parse ("new (\"Frank\") { Age = 42 }");
            Assert.IsInstanceOfType (e, typeof (ObjectLiteralExpression));

            var env = new ObjectEvalEnv (null, typeof (TestObject));
            var v = e.Eval (env);

            Assert.IsInstanceOfType (v, typeof (TestObject));
            var o = (TestObject)v;

            Assert.AreEqual ("Frank", o.Name);
            Assert.AreEqual (42, o.Age);
        }
예제 #15
0
 public void Subtract()
 {
     var e = Expression.Parse ("3 - 2");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.AreEqual (1, v);
 }
예제 #16
0
 public void ObjectLiteralMath()
 {
     var e = (ObjectLiteralExpression)Expression.Parse ("{a:3-2}");
     var env = new ObjectEvalEnv ();
     var v = e.Assignments[0].Value.Eval (env);
     Assert.AreEqual (1, v);
 }
예제 #17
0
 public void NotEqual()
 {
     var e = Expression.Parse ("3 != 2");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.IsTrue ((bool)v);
 }
예제 #18
0
 public void UnaryMinus()
 {
     var e = Expression.Parse ("-3");
     var env = new ObjectEvalEnv ();
     var v = e.Eval (env);
     Assert.AreEqual (-3, v);
 }