Example #1
0
        public void Test_print()
        {
            var variable = new Var('x');
            var term = new Term(Expression.Multiply, new Tuple<object, object>(1, variable));

            Assert.True(term.ToString().Equals("(1*x)"));
        }
Example #2
0
 public void Test_print3()
 {
     var x = new Var('x');
     var term0 = new Term(Expression.Multiply, new List<object>() {3, x});
     var y = new Var('y');
     var term1 = new Term(Expression.Multiply, new List<object>() {-1, y});
     var term = new Term(Expression.Add, new List<object>() {term0, term1});
     Assert.True(term.ToString().Equals("3x-y"));
 }
Example #3
0
 public void Test_Print4()
 {
     //d=2^2
     var t1 = new Term(Expression.Power, new List<object>() {2, 2});
     Assert.True(t1.ToString().Equals("2^2"));
     //d= (3+4)^0.5
     var t2 = new Term(Expression.Add, new List<object>() {3, 4});
     var t3 = new Term(Expression.Power, new List<object>() {t2, 0.5});
     Assert.True(t3.ToString().Equals("(3+4)^0.5"));
 }
Example #4
0
        public void Test_print2()
        {
            var term00 = new Term(Expression.Add, new List<object>(){1,1});
            var x = new Var('x');
            var term0 = new Term(Expression.Multiply, new List<object>() {term00, x});

            var term1 = new Term(Expression.Add, new List<object>() {term0, 1, -4});

            Assert.True(term00.ToString().Equals("1+1"));

            Assert.True(term0.ToString().Equals("(1+1)x"));
            
            Assert.True(term1.ToString().Equals("(1+1)x+1-4"));
        }
Example #5
0
        public void Test_Zero_1()
        {
            //x+0=>x
            var x    = new Var('x');
            var term = new Term(Expression.Add, new List <object>()
            {
                x, 0
            });

            Assert.True(term.ToString().Equals("x+0"));
            var result = term.Eval();

            Assert.True(result.ToString().Equals("x"));
            Assert.NotNull(result);
            Assert.True(term.Traces.Count == 1);
        }
Example #6
0
 public void Test_Print5()
 {
     //x=-1+5/2
     var t1 = new Term(Expression.Divide, new List<object>() {5, 2});
     var t2 = new Term(Expression.Add, new List<object>() {-1, t1});
     Assert.True(t1.ToString().Equals("5/2"));
     Assert.True(t2.ToString().Equals("-1+5/2"));
 }
Example #7
0
        public void Test_Print8()
        {
            var x = new Var("x");
            var y = new Var("y");

            var t1 = new Term(Expression.Multiply, new List<object>() {4, x});
            var t2 = new Term(Expression.Multiply, new List<object>() {-1, t1});


            Assert.True(t2.ToString().Equals("a"));
        }
Example #8
0
        public void Test_Print7()
        {
            //2+-1*5
            var t1 = new Term(Expression.Multiply, new List<object>() {-1, 5});
            var t2 = new Term(Expression.Add, new List<object>() {2, t1});

            Assert.True(t1.ToString().Equals("-1*5"));
        }
Example #9
0
 public void Test_Print6()
 {
     //x=(-1+5)/2
     var t1 = new Term(Expression.Add, new List<object>() { -1, 5 });
     var t2 = new Term(Expression.Divide, new List<object>() { t1, 2 });
     Assert.True(t1.ToString().Equals("-1+5"));
     Assert.True(t2.ToString().Equals("(-1+5)/2"));
 }
Example #10
0
 public void Test_Zero_1()
 {
     //x+0=>x
     var x = new Var('x');
     var term = new Term(Expression.Add, new List<object>() { x, 0 });
     Assert.True(term.ToString().Equals("x+0"));
     var result = term.Eval();
     Assert.True(result.ToString().Equals("x"));
     Assert.NotNull(result);
     Assert.True(term.Traces.Count == 1);
 }
Example #11
0
        public void Test_Commutative_5()
        {
            //(1+a)*2 -> 2*(a+1)
            var a = new Var('a');
            var term = new Term(Expression.Add, new List<object>() { 1, a });
            var term1 = new Term(Expression.Multiply, new List<object>() { term, 2 });
            Assert.True(term1.ToString().Equals("(1+a)2"));

            object result = term1.EvalAlgebra();
            Assert.NotNull(result);
            Assert.True(result.ToString().Equals("2a+2"));
            Assert.True(term1.Traces.Count == 1);

            var lst = term1.Traces[0].Item2 as List<TraceStep>;
            Assert.NotNull(lst);
            Assert.True(lst.Count == 4);
        }
Example #12
0
        public void Test_Commutative_4()
        {
            //1+(1+a) -> (a+1)+1
            var a = new Var('a');
            var term = new Term(Expression.Add, new List<object>() { 1, a });
            var term1 = new Term(Expression.Add, new List<object>() { 1, term });
            Assert.True(term1.ToString().Equals("1+1+a"));

            object result = term1.EvalAlgebra();
            Assert.NotNull(result);
            Assert.True(result.ToString().Equals("a+2"));
            Assert.True(term1.Traces.Count == 1);

            var lst = term1.Traces[0].Item2 as List<TraceStep>;
            Assert.NotNull(lst);
            Assert.True(lst.Count == 4);
        }