public void ReplaceFunction() { var x = new Symbol("x"); var f = new SymbolFunction("f"); Assert.IsTrue(_.Same(1 + 2 * (x + 2), (1 + f._(x + 2)).Replace( new Rule(f._(~x), 2 * x)))); }
public void ReplaceFunctionDerivative() { var x = new Symbol("x"); var f = new SymbolFunction("f", x); Assert.IsTrue(_.Same(1 + 2 * x, (1 + f.D()._(x)).Replace( new Rule(f._(~x), _.Pow(x, 2))))); Assert.IsTrue(_.Same(4 * x, (f.D()._(2 * x)).Replace( new Rule(f._(~x), _.Pow(x, 2))))); }
public void SymbolFunctionString() { var x = new Symbol("x"); var f = new SymbolFunction("f"); var g = new SymbolFunction("g", x); Assert.AreEqual("f[]", f.ToString()); Assert.AreEqual("g[x]", g.ToString()); Assert.AreEqual("f[x,x+1]", f._(x, x + 1).ToString()); }
public void SymbolFunctionCreate() { var x = new Symbol("x"); var f = new SymbolFunction("f"); var g = new SymbolFunction("g", x); Assert.AreEqual("f", f.Name); Assert.AreEqual(0, f.Arguments.Length); Assert.AreEqual("g", g.Name); Assert.AreEqual(1, g.Arguments.Length); var f1 = f._(x); Assert.AreEqual("f", f1.Name); Assert.AreEqual(1, f1.Arguments.Length); }