home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / Texte / scribus / scribus-1.3.3.9-win32-install.exe / lib / test / decimaltestdata / normalize.decTest < prev    next >
Text File  |  2004-08-23  |  10KB  |  226 lines

  1. ------------------------------------------------------------------------
  2. -- normalize.decTest -- remove trailing zeros                         --
  3. -- Copyright (c) IBM Corporation, 2003.  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.39
  21.  
  22. extended:    1
  23. precision:   9
  24. rounding:    half_up
  25. maxExponent: 999
  26. minexponent: -999
  27.  
  28. nrmx001 normalize '1'      -> '1'
  29. nrmx002 normalize '-1'     -> '-1'
  30. nrmx003 normalize '1.00'   -> '1'
  31. nrmx004 normalize '-1.00'  -> '-1'
  32. nrmx005 normalize '0'      -> '0'
  33. nrmx006 normalize '0.00'   -> '0'
  34. nrmx007 normalize '00.0'   -> '0'
  35. nrmx008 normalize '00.00'  -> '0'
  36. nrmx009 normalize '00'     -> '0'
  37. nrmx010 normalize '0E+1'   -> '0'
  38. nrmx011 normalize '0E+5'   -> '0'
  39.  
  40. nrmx012 normalize '-2'     -> '-2'
  41. nrmx013 normalize '2'      -> '2'
  42. nrmx014 normalize '-2.00'  -> '-2'
  43. nrmx015 normalize '2.00'   -> '2'
  44. nrmx016 normalize '-0'     -> '-0'
  45. nrmx017 normalize '-0.00'  -> '-0'
  46. nrmx018 normalize '-00.0'  -> '-0'
  47. nrmx019 normalize '-00.00' -> '-0'
  48. nrmx020 normalize '-00'    -> '-0'
  49. nrmx021 normalize '-0E+5'   -> '-0'
  50. nrmx022 normalize '-0E+1'  -> '-0'
  51.  
  52. nrmx030 normalize '+0.1'            -> '0.1'
  53. nrmx031 normalize '-0.1'            -> '-0.1'
  54. nrmx032 normalize '+0.01'           -> '0.01'
  55. nrmx033 normalize '-0.01'           -> '-0.01'
  56. nrmx034 normalize '+0.001'          -> '0.001'
  57. nrmx035 normalize '-0.001'          -> '-0.001'
  58. nrmx036 normalize '+0.000001'       -> '0.000001'
  59. nrmx037 normalize '-0.000001'       -> '-0.000001'
  60. nrmx038 normalize '+0.000000000001' -> '1E-12'
  61. nrmx039 normalize '-0.000000000001' -> '-1E-12'
  62.  
  63. nrmx041 normalize 1.1        -> 1.1
  64. nrmx042 normalize 1.10       -> 1.1
  65. nrmx043 normalize 1.100      -> 1.1
  66. nrmx044 normalize 1.110      -> 1.11
  67. nrmx045 normalize -1.1       -> -1.1
  68. nrmx046 normalize -1.10      -> -1.1
  69. nrmx047 normalize -1.100     -> -1.1
  70. nrmx048 normalize -1.110     -> -1.11
  71. nrmx049 normalize 9.9        -> 9.9
  72. nrmx050 normalize 9.90       -> 9.9
  73. nrmx051 normalize 9.900      -> 9.9
  74. nrmx052 normalize 9.990      -> 9.99
  75. nrmx053 normalize -9.9       -> -9.9
  76. nrmx054 normalize -9.90      -> -9.9
  77. nrmx055 normalize -9.900     -> -9.9
  78. nrmx056 normalize -9.990     -> -9.99
  79.  
  80. -- some trailing fractional zeros with zeros in units
  81. nrmx060 normalize  10.0        -> 1E+1
  82. nrmx061 normalize  10.00       -> 1E+1
  83. nrmx062 normalize  100.0       -> 1E+2
  84. nrmx063 normalize  100.00      -> 1E+2
  85. nrmx064 normalize  1.1000E+3   -> 1.1E+3
  86. nrmx065 normalize  1.10000E+3  -> 1.1E+3
  87. nrmx066 normalize -10.0        -> -1E+1
  88. nrmx067 normalize -10.00       -> -1E+1
  89. nrmx068 normalize -100.0       -> -1E+2
  90. nrmx069 normalize -100.00      -> -1E+2
  91. nrmx070 normalize -1.1000E+3   -> -1.1E+3
  92. nrmx071 normalize -1.10000E+3  -> -1.1E+3
  93.  
  94. -- some insignificant trailing zeros with positive exponent
  95. nrmx080 normalize  10E+1       -> 1E+2
  96. nrmx081 normalize  100E+1      -> 1E+3
  97. nrmx082 normalize  1.0E+2      -> 1E+2
  98. nrmx083 normalize  1.0E+3      -> 1E+3
  99. nrmx084 normalize  1.1E+3      -> 1.1E+3
  100. nrmx085 normalize  1.00E+3     -> 1E+3
  101. nrmx086 normalize  1.10E+3     -> 1.1E+3
  102. nrmx087 normalize -10E+1       -> -1E+2
  103. nrmx088 normalize -100E+1      -> -1E+3
  104. nrmx089 normalize -1.0E+2      -> -1E+2
  105. nrmx090 normalize -1.0E+3      -> -1E+3
  106. nrmx091 normalize -1.1E+3      -> -1.1E+3
  107. nrmx092 normalize -1.00E+3     -> -1E+3
  108. nrmx093 normalize -1.10E+3     -> -1.1E+3
  109.  
  110. -- some significant trailing zeros, were we to be trimming
  111. nrmx100 normalize  11          -> 11
  112. nrmx101 normalize  10          -> 1E+1
  113. nrmx102 normalize  10.         -> 1E+1
  114. nrmx103 normalize  1.1E+1      -> 11
  115. nrmx104 normalize  1.0E+1      -> 1E+1
  116. nrmx105 normalize  1.10E+2     -> 1.1E+2
  117. nrmx106 normalize  1.00E+2     -> 1E+2
  118. nrmx107 normalize  1.100E+3    -> 1.1E+3
  119. nrmx108 normalize  1.000E+3    -> 1E+3
  120. nrmx109 normalize  1.000000E+6 -> 1E+6
  121. nrmx110 normalize -11          -> -11
  122. nrmx111 normalize -10          -> -1E+1
  123. nrmx112 normalize -10.         -> -1E+1
  124. nrmx113 normalize -1.1E+1      -> -11
  125. nrmx114 normalize -1.0E+1      -> -1E+1
  126. nrmx115 normalize -1.10E+2     -> -1.1E+2
  127. nrmx116 normalize -1.00E+2     -> -1E+2
  128. nrmx117 normalize -1.100E+3    -> -1.1E+3
  129. nrmx118 normalize -1.000E+3    -> -1E+3
  130. nrmx119 normalize -1.00000E+5  -> -1E+5
  131. nrmx120 normalize -1.000000E+6 -> -1E+6
  132. nrmx121 normalize -10.00000E+6 -> -1E+7
  133. nrmx122 normalize -100.0000E+6 -> -1E+8
  134. nrmx123 normalize -1000.000E+6 -> -1E+9
  135. nrmx124 normalize -10000.00E+6 -> -1E+10
  136. nrmx125 normalize -100000.0E+6 -> -1E+11
  137. nrmx126 normalize -1000000.E+6 -> -1E+12
  138.  
  139. -- examples from decArith
  140. nrmx140 normalize '2.1'     ->  '2.1'
  141. nrmx141 normalize '-2.0'    ->  '-2'
  142. nrmx142 normalize '1.200'   ->  '1.2'
  143. nrmx143 normalize '-120'    ->  '-1.2E+2'
  144. nrmx144 normalize '120.00'  ->  '1.2E+2'
  145. nrmx145 normalize '0.00'    ->  '0'
  146.  
  147. -- overflow tests
  148. maxexponent: 999999999
  149. minexponent: -999999999
  150. precision: 3
  151. nrmx160 normalize 9.999E+999999999  ->  Infinity Inexact Overflow Rounded
  152. nrmx161 normalize -9.999E+999999999 -> -Infinity Inexact Overflow Rounded
  153.  
  154. -- subnormals and underflow
  155. precision: 3
  156. maxexponent: 999
  157. minexponent: -999
  158. nrmx210 normalize  1.00E-999        ->   1E-999
  159. nrmx211 normalize  0.1E-999         ->   1E-1000   Subnormal
  160. nrmx212 normalize  0.10E-999        ->   1E-1000   Subnormal
  161. nrmx213 normalize  0.100E-999       ->   1E-1000   Subnormal Rounded
  162. nrmx214 normalize  0.01E-999        ->   1E-1001   Subnormal
  163. -- next is rounded to Emin
  164. nrmx215 normalize  0.999E-999       ->   1E-999    Inexact Rounded Subnormal Underflow
  165. nrmx216 normalize  0.099E-999       ->   1E-1000   Inexact Rounded Subnormal Underflow
  166. nrmx217 normalize  0.009E-999       ->   1E-1001   Inexact Rounded Subnormal Underflow
  167. nrmx218 normalize  0.001E-999       ->   0         Inexact Rounded Subnormal Underflow
  168. nrmx219 normalize  0.0009E-999      ->   0         Inexact Rounded Subnormal Underflow
  169. nrmx220 normalize  0.0001E-999      ->   0         Inexact Rounded Subnormal Underflow
  170.  
  171. nrmx230 normalize -1.00E-999        ->  -1E-999
  172. nrmx231 normalize -0.1E-999         ->  -1E-1000   Subnormal
  173. nrmx232 normalize -0.10E-999        ->  -1E-1000   Subnormal
  174. nrmx233 normalize -0.100E-999       ->  -1E-1000   Subnormal Rounded
  175. nrmx234 normalize -0.01E-999        ->  -1E-1001   Subnormal
  176. -- next is rounded to Emin
  177. nrmx235 normalize -0.999E-999       ->  -1E-999    Inexact Rounded Subnormal Underflow
  178. nrmx236 normalize -0.099E-999       ->  -1E-1000   Inexact Rounded Subnormal Underflow
  179. nrmx237 normalize -0.009E-999       ->  -1E-1001   Inexact Rounded Subnormal Underflow
  180. nrmx238 normalize -0.001E-999       ->  -0         Inexact Rounded Subnormal Underflow
  181. nrmx239 normalize -0.0009E-999      ->  -0         Inexact Rounded Subnormal Underflow
  182. nrmx240 normalize -0.0001E-999      ->  -0         Inexact Rounded Subnormal Underflow
  183.  
  184. -- more reshaping
  185. precision: 9
  186. nrmx260 normalize '56260E-10'   -> '0.000005626'
  187. nrmx261 normalize '56260E-5'    -> '0.5626'
  188. nrmx262 normalize '56260E-2'    -> '562.6'
  189. nrmx263 normalize '56260E-1'    -> '5626'
  190. nrmx265 normalize '56260E-0'    -> '5.626E+4'
  191. nrmx266 normalize '56260E+0'    -> '5.626E+4'
  192. nrmx267 normalize '56260E+1'    -> '5.626E+5'
  193. nrmx268 normalize '56260E+2'    -> '5.626E+6'
  194. nrmx269 normalize '56260E+3'    -> '5.626E+7'
  195. nrmx270 normalize '56260E+4'    -> '5.626E+8'
  196. nrmx271 normalize '56260E+5'    -> '5.626E+9'
  197. nrmx272 normalize '56260E+6'    -> '5.626E+10'
  198. nrmx280 normalize '-56260E-10'  -> '-0.000005626'
  199. nrmx281 normalize '-56260E-5'   -> '-0.5626'
  200. nrmx282 normalize '-56260E-2'   -> '-562.6'
  201. nrmx283 normalize '-56260E-1'   -> '-5626'
  202. nrmx285 normalize '-56260E-0'   -> '-5.626E+4'
  203. nrmx286 normalize '-56260E+0'   -> '-5.626E+4'
  204. nrmx287 normalize '-56260E+1'   -> '-5.626E+5'
  205. nrmx288 normalize '-56260E+2'   -> '-5.626E+6'
  206. nrmx289 normalize '-56260E+3'   -> '-5.626E+7'
  207. nrmx290 normalize '-56260E+4'   -> '-5.626E+8'
  208. nrmx291 normalize '-56260E+5'   -> '-5.626E+9'
  209. nrmx292 normalize '-56260E+6'   -> '-5.626E+10'
  210.  
  211.  
  212. -- specials
  213. nrmx820 normalize 'Inf'    -> 'Infinity'
  214. nrmx821 normalize '-Inf'   -> '-Infinity'
  215. nrmx822 normalize   NaN    ->  NaN
  216. nrmx823 normalize  sNaN    ->  NaN    Invalid_operation
  217. nrmx824 normalize   NaN101 ->  NaN101
  218. nrmx825 normalize  sNaN010 ->  NaN10  Invalid_operation
  219. nrmx827 normalize  -NaN    -> -NaN
  220. nrmx828 normalize -sNaN    -> -NaN    Invalid_operation
  221. nrmx829 normalize  -NaN101 -> -NaN101
  222. nrmx830 normalize -sNaN010 -> -NaN10  Invalid_operation
  223.  
  224. -- Null test
  225. nrmx900 normalize  # -> NaN Invalid_operation
  226.