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)")); }
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")); }
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")); }
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")); }
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); }
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")); }
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")); }
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")); }
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")); }
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); }
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); }
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); }