// $Id: CubicTest.m4,v 1.1 1999/10/03 00:50:46 leavens Exp leavens $

import lib.*;

public class CubicTest extends Tester {

    public static void main(String [] argv) {
        System.out.println("");
        System.out.println("Test $RCSfile: CubicTest.m4,v $ of $Date: 1999/10/03 00:50:46 $");
        System.out.println("");

	evalsTo("approxEqual(new Cubic(0.0, 0.0, 0.0).value(3.0), 27.0)", approxEqual(new Cubic(0.0, 0.0, 0.0).value(3.0), 27.0), true);
	evalsTo("approxEqual(new Cubic(1.0, 0.0, 0.0).value(3.0), 36.0)", approxEqual(new Cubic(1.0, 0.0, 0.0).value(3.0), 36.0), true);
	evalsTo("approxEqual(new Cubic(0.0, 1.0, 0.0).value(3.0), 30.0)", approxEqual(new Cubic(0.0, 1.0, 0.0).value(3.0), 30.0), true);
	evalsTo("approxEqual(new Cubic(0.0, 0.0, 8.0).value(5.0), 133.0)", approxEqual(new Cubic(0.0, 0.0, 8.0).value(5.0), 133.0), true);
	evalsTo("approxEqual(new Cubic(3.0, 2.0, 7.0).value(5.0), 217.0)", approxEqual(new Cubic(3.0, 2.0, 7.0).value(5.0), 217.0), true);

        evalsTo("approxEqual(new NewtonsMethod().solve(new Cubic(3.0, 2.0, 7.0), 1.0), -3.08674533988258)", approxEqual(new NewtonsMethod().solve(new Cubic(3.0, 2.0, 7.0), 1.0), -3.08674533988258), true);

	testReport();
    }

}
