public static bool IsQuadraticTerm(this Term term) { if (term == null) { return(false); } if (!term.ContainsVar()) { return(false); } var cond1 = term.Op == Expression.Power; var lst = term.Args as List <object>; if (lst == null || lst.Count != 2) { return(false); } var isNum = LogicSharp.IsNumeric(lst[1]); if (!isNum) { return(false); } double number; LogicSharp.IsDouble(lst[1], out number); var cond2 = number.Equals(2.0); return(cond1 && cond2); }
public void Test_containVar() { var variable = new Var('x'); var term = new Term(Expression.Add, new Tuple<object, object>(variable, 2)); Assert.True(term.ContainsVar(variable)); var term2 = new Term(Expression.Add, new Tuple<object, object>(term, 1.0)); Assert.True(term2.ContainsVar(variable)); }