From: Robert D. <rob...@us...> - 2008-07-26 17:30:25
|
Update of /cvsroot/maxima/maxima/tests In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv5982/tests Modified Files: rtest15.mac Log Message: Test argument in FLOATTOFP to ensure it is not float infinity or NaN. Test for infinity: (and (floatp x) (not (float-nan-p x)) (beyond-extreme-values x))) where the extreme values are the most negative and most positive floats of the same type as the argument X. Test for NaN: (and (floatp x) (not (= x x))) Resolves SF bug report [ 2013654 ] bfloat(NaN) => finite number. Index: rtest15.mac =================================================================== RCS file: /cvsroot/maxima/maxima/tests/rtest15.mac,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- rtest15.mac 5 Apr 2008 19:38:27 -0000 1.68 +++ rtest15.mac 26 Jul 2008 17:30:22 -0000 1.69 @@ -983,3 +983,23 @@ (reset (float_approx_equal_tolerance), 0); 0; + +/* disallow bigfloat conversion for floating point infinity and not-a-number. + * SF bug [ 2013654 ] bfloat(NaN) => finite number + */ + +(foo : ?most\-positive\-double\-float, + bar : ?most\-negative\-double\-float, + block ([ratepsilon : 0], [bfloat (foo), bfloat (bar)])); +/* might need to replace the expected result w/ a rat-ified value to ensure equality ... */ +[1.797693134862316b308, - 1.797693134862316b308]; + +errcatch (bfloat (2*foo)); +[]; + +errcatch (bfloat (2*bar)); +[]; + +errcatch (bfloat (2*foo + 3*bar)); +[]; + |