[package]
[Java implementation]
[Execution output]
DerivativeTest
import church.util.Entry;
import church.util.HashMap;
import Expression;
import Derivative;
test(funNameToFunction, funNameToDerivative, fn, x0, expectedFp0) = {
varName = "x";
varNameToValue = name −> if name == varName then x0 else error("Undefined variable");
x = var(varName);f = fn(x);
output << "f(x) = " << f << "\n";
f0 = evaluate(funNameToFunction, f, varNameToValue);
output << "f(1) = " << f0 << "\n";fp = derivative(funNameToDerivative, f, x);
output << "f'(x) = " << fp << "\n";
fp0 = evaluate(funNameToFunction, fp, varNameToValue);
output << "f'(1) = " << fp0 << "\n";assert expectedFp0 == fp0;
output << "\n";
}
test0(fn, x0, fp0) = test(name −> {}.get(name), name −> {}.get(name), fn, x0, fp0);