Patch: FYI: add ulp tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2006-03-06 at 17:46 -0700, Tom Tromey wrote:
> I'm checking this in.
> 
> This adds some new tests for Math.ulp.  I'll check in the
> implementation of these methods shortly.
> 
> Tom
> 
> 2006-03-06  Tom Tromey  <tromey@xxxxxxxxxx>
> 
> 	* gnu/testlet/java/lang/Math/ulp.java: New file.
> 
> Index: gnu/testlet/java/lang/Math/ulp.java
> ===================================================================
> RCS file: gnu/testlet/java/lang/Math/ulp.java
> diff -N gnu/testlet/java/lang/Math/ulp.java
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ gnu/testlet/java/lang/Math/ulp.java	1 Jan 1970 00:00:00 -0000
> @@ -0,0 +1,44 @@
> +/* ulp.java -- Test the ulp method
> +   Copyright (C) 2006 Red Hat, Inc.
> +This file is part of Mauve.
> +
> +Mauve is free software; you can redistribute it and/or modify
> +it under the terms of the GNU General Public License as published by
> +the Free Software Foundation; either version 2, or (at your option)
> +any later version.
> +
> +Mauve is distributed in the hope that it will be useful, but
> +WITHOUT ANY WARRANTY; without even the implied warranty of
> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +General Public License for more details.
> +
> +You should have received a copy of the GNU General Public License
> +along with Mauve; see the file COPYING.  If not, write to the
> +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> +02110-1301 USA.
> +
> +*/
> +
> +// Tags: JDK1.5
> +
> +package gnu.testlet.java.lang.Math;
> +
> +import gnu.testlet.TestHarness;
> +import gnu.testlet.Testlet;
> +
> +public class ulp implements Testlet {
> +
> +	public void test(TestHarness harness) {
> +		harness.check(Math.ulp(0.0), Double.MIN_VALUE);
> +		harness.check(Math.ulp(Double.NaN), Double.NaN);
> +		harness.check(Math.ulp(Double.MAX_VALUE), Math.pow(2.0, 971));
> +		harness.check(Math.ulp(Double.NEGATIVE_INFINITY), Double.POSITIVE_INFINITY);
> +		harness.check(Math.ulp(Double.MIN_VALUE), Double.MIN_VALUE);
> +
> +		harness.check(Math.ulp(0.0f), Float.MIN_VALUE);
> +		harness.check(Math.ulp(Float.NaN), Float.NaN);
> +		harness.check(Math.ulp(Float.MAX_VALUE), Math.pow(2.0, 104));
> +		harness.check(Math.ulp(Float.NEGATIVE_INFINITY), Float.POSITIVE_INFINITY);
> +		harness.check(Math.ulp(Float.MIN_VALUE), Float.MIN_VALUE);
> +	}
> +}

Great -- I wasn't sure how to handle ulp.  BTW, do you know how we
handle the StrictMath variants of these methods?  They seem to be coded
in Java; presumably they are translations of the fdlibm methods, as the
same algorithms have to be used.

Thanks,
-- 
Andrew :-)
Department of Computer Science
University of Sheffield

Please avoid sending me Microsoft Office (e.g. Word, PowerPoint) attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html
Support OpenDocument instead. http://opendocumentfellowship.org

Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html
public class gcj extends Freedom implements Java { ... }

"Value your freedom, or you will lose it, teaches history.
`Don't bother us with politics' respond those who don't want to learn."
-- Richard Stallman

The views expressed above are representative of my own personal
opinions, and not necessarily those of the University of Sheffield.



[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux