Georg Brandl | faa9ad2 | 2011-03-05 15:06:13 +0100 | [diff] [blame] | 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@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 | |