public void Test_Flattern_1() { /* * x+(2y+3z) */ var x = new Var('x'); var y = new Var('y'); var z = new Var('z'); var term2 = new Term(Expression.Multiply, new List<object>() { 2, y }); var term3 = new Term(Expression.Multiply, new List<object>() { 3, z }); var expr1 = new Term(Expression.Add, new List<object>() { term2, term3 }); var expr = new Term(Expression.Add, new List<object>() { x, expr1 }); Term obj = expr.FlatTerm(); Assert.NotNull(obj); var lst = obj.Args as List<object>; Assert.NotNull(lst); Assert.True(lst.Count == 3); }