// $Id: IntervalTest.m4,v 1.3 1999/10/13 03:37:56 leavens Exp leavens $

import lib.*;

public class IntervalTest extends Tester {

    public static void main(String [] argv) {
        System.out.println("");
        System.out.println("Test $RCSfile: IntervalTest.m4,v $ of $Date: 1999/10/13 03:37:56 $");
        System.out.println("");

	evalsTo("new Interval(0.0, 1.0).lowerBound()", new Interval(0.0, 1.0).lowerBound(), 0.0);
	evalsTo("new Interval(2.0, 7.0).upperBound()", new Interval(2.0, 7.0).upperBound(), 7.0);
	evalsTo("new Interval(2.0, 7.0).add(new Interval(1.0, 3.0)).lowerBound()", new Interval(2.0, 7.0).add(new Interval(1.0, 3.0)).lowerBound(), 3.0);
	evalsTo("new Interval(2.0, 7.0).add(new Interval(1.0, 3.0)).upperBound()", new Interval(2.0, 7.0).add(new Interval(1.0, 3.0)).upperBound(), 10.0);
	evalsTo("new Interval(-2.0, 8.0).mul(new Interval(1.0, 4.0)).lowerBound()", new Interval(-2.0, 8.0).mul(new Interval(1.0, 4.0)).lowerBound(), -8.0);
	evalsTo("new Interval(-2.0, 8.0).mul(new Interval(1.0, 4.0)).upperBound()", new Interval(-2.0, 8.0).mul(new Interval(1.0, 4.0)).upperBound(), 32.0);
	evalsTo("new Interval(-2.0, 8.0).div(new Interval(1.0, 4.0)).lowerBound()", new Interval(-2.0, 8.0).div(new Interval(1.0, 4.0)).lowerBound(), -2.0);
	evalsTo("new Interval(-2.0, 8.0).div(new Interval(1.0, 4.0)).upperBound()", new Interval(-2.0, 8.0).div(new Interval(1.0, 4.0)).upperBound(), 8.0);
	evalsTo("new Interval(2.0, 4.0).sub(new Interval(1.0, 2.0)).lowerBound()", new Interval(2.0, 4.0).sub(new Interval(1.0, 2.0)).lowerBound(), 0.0);
	evalsTo("new Interval(2.0, 4.0).sub(new Interval(1.0, 2.0)).upperBound()", new Interval(2.0, 4.0).sub(new Interval(1.0, 2.0)).upperBound(), 3.0);
	evalsTo("new Interval(2.0, 4.0).sub(new Interval(2.0, 2.0)).lowerBound()", new Interval(2.0, 4.0).sub(new Interval(2.0, 2.0)).lowerBound(), 0.0);
	evalsTo("new Interval(2.0, 4.0).sub(new Interval(2.0, 2.0)).upperBound()", new Interval(2.0, 4.0).sub(new Interval(2.0, 2.0)).upperBound(), 2.0);
	evalsTo("new Interval(2.0, 4.0).sub(new Interval(2.5, 3.0)).lowerBound()", new Interval(2.0, 4.0).sub(new Interval(2.5, 3.0)).lowerBound(), -1.0);
	evalsTo("new Interval(2.0, 4.0).sub(new Interval(2.5, 3.0)).upperBound()", new Interval(2.0, 4.0).sub(new Interval(2.5, 3.0)).upperBound(), 1.5);

	testReport();
    }

}
