local a = DD(SymbolExpression("x") * SymbolExpression("y"), SymbolExpression("x")) local b = DD(Integer(3) * SymbolExpression("x") ^ Integer(2) + Integer(2) * SymbolExpression("x") + Integer(6), SymbolExpression("x")) local c = DD(E ^ SymbolExpression("x"), SymbolExpression("x")) local d = DD(FunctionExpression("f", {SymbolExpression("x") ^ Integer(2)})) local e = DD(SymbolExpression("x") ^ SymbolExpression("x")) local f = DD(PolynomialRing({Integer(3), Integer(4), Integer(5)}, "x")) local g = DD(LN(SymbolExpression("y")), SymbolExpression("y")) local h = DD(SymbolExpression("x") ^ SymbolExpression("n")) local i = DD(SIN((SymbolExpression("x")))) local j = DD(SIN(Integer(2) * COS(SymbolExpression("x")))) local k = DD(ARCTAN(SymbolExpression("x") ^ (Integer(1) / Integer(2)))) local l = DD(ARCSEC(SymbolExpression("x"))) starttest("derivatives") testeq(a, dparse("DD(x*y, x)")) testeq(a:autosimplify(), parse("y"), a) testeq(b:autosimplify(), parse("6 * x + 2"), b) testeq(c:autosimplify(), parse("e^x"), c) testeq(d:autosimplify(), (Integer(2) * SymbolExpression("x") * FunctionExpression("f", {SymbolExpression("x")^Integer(2)}, {Integer(1)})):autosimplify(), d) testeq(e:autosimplify(), parse("x^x * (1 + ln(x))"), e) testeq(f:autosimplify(), parse("4 + 10 * x"), f) testeq(g:autosimplify(), parse("y ^ -1"), g) testeq(h:autosimplify(), parse("n * x ^ (-1 + n)"), h) testeq(i:autosimplify(), parse("cos(x)"), i) testeq(j:autosimplify(), parse("-2 * cos(2 * cos(x)) * sin(x)"), j) testeq(k:autosimplify(), parse("1/2 * x^(-1/2) * (1+x) ^ -1"), k) testeq(l:autosimplify(), parse("abs(x)^-1 * (1 + -(x^2))^ (-1/2)"), l) endtest()