// $Id: SqrtTest.m4,v 1.1 1999/10/03 00:43:30 leavens Exp $


// To test this, run from the command line:
//       java lib.SqrtTest

package lib;

public class SqrtTest extends Tester {

    public static void main(String argv[]) {

        DoubleFun sqrt = new SqrtByNewtonsMethod(0.0000000001);

	evalsTo("new Deriv(new DoubleFun() { public double value(double x) { return x * x * x; } } ).value(5.0)", new Deriv(new DoubleFun() { public double value(double x) { return x * x * x; } } ).value(5.0), 75.00014999664018);
	evalsTo("new FixedPoint().solve(new DoubleFun() { public double value(double x) { return Math.cos(x); } }, 1.0)", new FixedPoint().solve(new DoubleFun() { public double value(double x) { return Math.cos(x); } }, 1.0), 0.7390822985224023);
            
        evalsTo("approxEqual(sqrt.value(4.0), 2.0)", approxEqual(sqrt.value(4.0), 2.0), true);
        evalsTo("approxEqual(sqrt.value(2.0), 1.4142135623730951)", approxEqual(sqrt.value(2.0), 1.4142135623730951), true);
        evalsTo("approxEqual(sqrt.value(0.1), 0.31622776601683794)", approxEqual(sqrt.value(0.1), 0.31622776601683794), true);
        evalsTo("sqrt.value(9.0)", sqrt.value(9.0), 3.0);
        evalsTo("sqrt.value(100.0)", sqrt.value(100.0), 10.0);

	testReport();
    }

}
