1 ------------------------------------------------------------------------ 2 -- class.decTest -- Class operations -- 3 -- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. -- 4 ------------------------------------------------------------------------ 5 -- Please see the document "General Decimal Arithmetic Testcases" -- 6 -- at http://www2.hursley.ibm.com/decimal for the description of -- 7 -- these testcases. -- 8 -- -- 9 -- These testcases are experimental ('beta' versions), and they -- 10 -- may contain errors. They are offered on an as-is basis. In -- 11 -- particular, achieving the same results as the tests here is not -- 12 -- a guarantee that an implementation complies with any Standard -- 13 -- or specification. The tests are not exhaustive. -- 14 -- -- 15 -- Please send comments, suggestions, and corrections to the author: -- 16 -- Mike Cowlishaw, IBM Fellow -- 17 -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- 18 -- mfc (a] uk.ibm.com -- 19 ------------------------------------------------------------------------ 20 version: 2.59 21 22 -- [New 2006.11.27] 23 24 precision: 9 25 maxExponent: 999 26 minExponent: -999 27 extended: 1 28 clamp: 1 29 rounding: half_even 30 31 clasx001 class 0 -> +Zero 32 clasx002 class 0.00 -> +Zero 33 clasx003 class 0E+5 -> +Zero 34 clasx004 class 1E-1007 -> +Subnormal 35 clasx005 class 0.1E-999 -> +Subnormal 36 clasx006 class 0.99999999E-999 -> +Subnormal 37 clasx007 class 1.00000000E-999 -> +Normal 38 clasx008 class 1E-999 -> +Normal 39 clasx009 class 1E-100 -> +Normal 40 clasx010 class 1E-10 -> +Normal 41 clasx012 class 1E-1 -> +Normal 42 clasx013 class 1 -> +Normal 43 clasx014 class 2.50 -> +Normal 44 clasx015 class 100.100 -> +Normal 45 clasx016 class 1E+30 -> +Normal 46 clasx017 class 1E+999 -> +Normal 47 clasx018 class 9.99999999E+999 -> +Normal 48 clasx019 class Inf -> +Infinity 49 50 clasx021 class -0 -> -Zero 51 clasx022 class -0.00 -> -Zero 52 clasx023 class -0E+5 -> -Zero 53 clasx024 class -1E-1007 -> -Subnormal 54 clasx025 class -0.1E-999 -> -Subnormal 55 clasx026 class -0.99999999E-999 -> -Subnormal 56 clasx027 class -1.00000000E-999 -> -Normal 57 clasx028 class -1E-999 -> -Normal 58 clasx029 class -1E-100 -> -Normal 59 clasx030 class -1E-10 -> -Normal 60 clasx032 class -1E-1 -> -Normal 61 clasx033 class -1 -> -Normal 62 clasx034 class -2.50 -> -Normal 63 clasx035 class -100.100 -> -Normal 64 clasx036 class -1E+30 -> -Normal 65 clasx037 class -1E+999 -> -Normal 66 clasx038 class -9.99999999E+999 -> -Normal 67 clasx039 class -Inf -> -Infinity 68 69 clasx041 class NaN -> NaN 70 clasx042 class -NaN -> NaN 71 clasx043 class +NaN12345 -> NaN 72 clasx044 class sNaN -> sNaN 73 clasx045 class -sNaN -> sNaN 74 clasx046 class +sNaN12345 -> sNaN 75 76 77 -- decimal64 bounds 78 79 precision: 16 80 maxExponent: 384 81 minExponent: -383 82 clamp: 1 83 rounding: half_even 84 85 clasx201 class 0 -> +Zero 86 clasx202 class 0.00 -> +Zero 87 clasx203 class 0E+5 -> +Zero 88 clasx204 class 1E-396 -> +Subnormal 89 clasx205 class 0.1E-383 -> +Subnormal 90 clasx206 class 0.999999999999999E-383 -> +Subnormal 91 clasx207 class 1.000000000000000E-383 -> +Normal 92 clasx208 class 1E-383 -> +Normal 93 clasx209 class 1E-100 -> +Normal 94 clasx210 class 1E-10 -> +Normal 95 clasx212 class 1E-1 -> +Normal 96 clasx213 class 1 -> +Normal 97 clasx214 class 2.50 -> +Normal 98 clasx215 class 100.100 -> +Normal 99 clasx216 class 1E+30 -> +Normal 100 clasx217 class 1E+384 -> +Normal 101 clasx218 class 9.999999999999999E+384 -> +Normal 102 clasx219 class Inf -> +Infinity 103 104 clasx221 class -0 -> -Zero 105 clasx222 class -0.00 -> -Zero 106 clasx223 class -0E+5 -> -Zero 107 clasx224 class -1E-396 -> -Subnormal 108 clasx225 class -0.1E-383 -> -Subnormal 109 clasx226 class -0.999999999999999E-383 -> -Subnormal 110 clasx227 class -1.000000000000000E-383 -> -Normal 111 clasx228 class -1E-383 -> -Normal 112 clasx229 class -1E-100 -> -Normal 113 clasx230 class -1E-10 -> -Normal 114 clasx232 class -1E-1 -> -Normal 115 clasx233 class -1 -> -Normal 116 clasx234 class -2.50 -> -Normal 117 clasx235 class -100.100 -> -Normal 118 clasx236 class -1E+30 -> -Normal 119 clasx237 class -1E+384 -> -Normal 120 clasx238 class -9.999999999999999E+384 -> -Normal 121 clasx239 class -Inf -> -Infinity 122 123 clasx241 class NaN -> NaN 124 clasx242 class -NaN -> NaN 125 clasx243 class +NaN12345 -> NaN 126 clasx244 class sNaN -> sNaN 127 clasx245 class -sNaN -> sNaN 128 clasx246 class +sNaN12345 -> sNaN 129 130 131 132