Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 1 | ------------------------------------------------------------------------ |
| 2 | -- trim.decTest -- remove insignificant 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 | ------------------------------------------------------------------------ |
Raymond Hettinger | 3ee3ed2 | 2004-08-17 06:42:13 +0000 | [diff] [blame] | 20 | version: 2.39 |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 21 | |
| 22 | extended: 1 |
| 23 | precision: 9 |
| 24 | rounding: half_up |
| 25 | maxExponent: 999 |
| 26 | minexponent: -999 |
| 27 | |
| 28 | trmx001 trim '1' -> '1' |
| 29 | trmx002 trim '-1' -> '-1' |
| 30 | trmx003 trim '1.00' -> '1' |
| 31 | trmx004 trim '-1.00' -> '-1' |
| 32 | trmx005 trim '0' -> '0' |
| 33 | trmx006 trim '0.00' -> '0' |
| 34 | trmx007 trim '00.0' -> '0' |
| 35 | trmx008 trim '00.00' -> '0' |
| 36 | trmx009 trim '00' -> '0' |
| 37 | |
| 38 | trmx010 trim '-2' -> '-2' |
| 39 | trmx011 trim '2' -> '2' |
| 40 | trmx012 trim '-2.00' -> '-2' |
| 41 | trmx013 trim '2.00' -> '2' |
| 42 | trmx014 trim '-0' -> '-0' |
| 43 | trmx015 trim '-0.00' -> '-0' |
| 44 | trmx016 trim '-00.0' -> '-0' |
| 45 | trmx017 trim '-00.00' -> '-0' |
| 46 | trmx018 trim '-00' -> '-0' |
| 47 | trmx019 trim '0E+5' -> '0' |
| 48 | trmx020 trim '-0E+1' -> '-0' |
| 49 | |
| 50 | trmx030 trim '+0.1' -> '0.1' |
| 51 | trmx031 trim '-0.1' -> '-0.1' |
| 52 | trmx032 trim '+0.01' -> '0.01' |
| 53 | trmx033 trim '-0.01' -> '-0.01' |
| 54 | trmx034 trim '+0.001' -> '0.001' |
| 55 | trmx035 trim '-0.001' -> '-0.001' |
| 56 | trmx036 trim '+0.000001' -> '0.000001' |
| 57 | trmx037 trim '-0.000001' -> '-0.000001' |
| 58 | trmx038 trim '+0.000000000001' -> '1E-12' |
| 59 | trmx039 trim '-0.000000000001' -> '-1E-12' |
| 60 | |
| 61 | trmx041 trim 1.1 -> 1.1 |
| 62 | trmx042 trim 1.10 -> 1.1 |
| 63 | trmx043 trim 1.100 -> 1.1 |
| 64 | trmx044 trim 1.110 -> 1.11 |
| 65 | trmx045 trim -1.1 -> -1.1 |
| 66 | trmx046 trim -1.10 -> -1.1 |
| 67 | trmx047 trim -1.100 -> -1.1 |
| 68 | trmx048 trim -1.110 -> -1.11 |
| 69 | trmx049 trim 9.9 -> 9.9 |
| 70 | trmx050 trim 9.90 -> 9.9 |
| 71 | trmx051 trim 9.900 -> 9.9 |
| 72 | trmx052 trim 9.990 -> 9.99 |
| 73 | trmx053 trim -9.9 -> -9.9 |
| 74 | trmx054 trim -9.90 -> -9.9 |
| 75 | trmx055 trim -9.900 -> -9.9 |
| 76 | trmx056 trim -9.990 -> -9.99 |
| 77 | |
| 78 | -- some insignificant trailing fractional zeros |
| 79 | trmx060 trim 10.0 -> 10 |
| 80 | trmx061 trim 10.00 -> 10 |
| 81 | trmx062 trim 100.0 -> 100 |
| 82 | trmx063 trim 100.00 -> 100 |
| 83 | trmx064 trim 1.1000E+3 -> 1100 |
| 84 | trmx065 trim 1.10000E+3 -> 1100 |
| 85 | trmx066 trim -10.0 -> -10 |
| 86 | trmx067 trim -10.00 -> -10 |
| 87 | trmx068 trim -100.0 -> -100 |
| 88 | trmx069 trim -100.00 -> -100 |
| 89 | trmx070 trim -1.1000E+3 -> -1100 |
| 90 | trmx071 trim -1.10000E+3 -> -1100 |
| 91 | |
| 92 | -- some insignificant trailing zeros with positive exponent |
| 93 | trmx080 trim 10E+1 -> 1E+2 |
| 94 | trmx081 trim 100E+1 -> 1E+3 |
| 95 | trmx082 trim 1.0E+2 -> 1E+2 |
| 96 | trmx083 trim 1.0E+3 -> 1E+3 |
| 97 | trmx084 trim 1.1E+3 -> 1.1E+3 |
| 98 | trmx085 trim 1.00E+3 -> 1E+3 |
| 99 | trmx086 trim 1.10E+3 -> 1.1E+3 |
| 100 | trmx087 trim -10E+1 -> -1E+2 |
| 101 | trmx088 trim -100E+1 -> -1E+3 |
| 102 | trmx089 trim -1.0E+2 -> -1E+2 |
| 103 | trmx090 trim -1.0E+3 -> -1E+3 |
| 104 | trmx091 trim -1.1E+3 -> -1.1E+3 |
| 105 | trmx092 trim -1.00E+3 -> -1E+3 |
| 106 | trmx093 trim -1.10E+3 -> -1.1E+3 |
| 107 | |
| 108 | -- some significant trailing zeros |
| 109 | trmx100 trim 11 -> 11 |
| 110 | trmx101 trim 10 -> 10 |
| 111 | trmx102 trim 10. -> 10 |
| 112 | trmx103 trim 1.1E+1 -> 11 |
| 113 | trmx104 trim 1.0E+1 -> 10 |
| 114 | trmx105 trim 1.10E+2 -> 110 |
| 115 | trmx106 trim 1.00E+2 -> 100 |
| 116 | trmx107 trim 1.100E+3 -> 1100 |
| 117 | trmx108 trim 1.000E+3 -> 1000 |
| 118 | trmx109 trim 1.000000E+6 -> 1000000 |
| 119 | trmx110 trim -11 -> -11 |
| 120 | trmx111 trim -10 -> -10 |
| 121 | trmx112 trim -10. -> -10 |
| 122 | trmx113 trim -1.1E+1 -> -11 |
| 123 | trmx114 trim -1.0E+1 -> -10 |
| 124 | trmx115 trim -1.10E+2 -> -110 |
| 125 | trmx116 trim -1.00E+2 -> -100 |
| 126 | trmx117 trim -1.100E+3 -> -1100 |
| 127 | trmx118 trim -1.000E+3 -> -1000 |
| 128 | trmx119 trim -1.00000E+5 -> -100000 |
| 129 | trmx120 trim -1.000000E+6 -> -1000000 |
| 130 | |
| 131 | -- examples from decArith |
| 132 | trmx140 trim '2.1' -> '2.1' |
| 133 | trmx141 trim '-2.0' -> '-2' |
| 134 | trmx142 trim '1.200' -> '1.2' |
| 135 | trmx143 trim '-120' -> '-120' |
| 136 | trmx144 trim '120.00' -> '120' |
| 137 | trmx145 trim '0.00' -> '0' |
| 138 | |
| 139 | -- utilities pass through specials without raising exceptions |
| 140 | trmx320 trim 'Inf' -> 'Infinity' |
| 141 | trmx321 trim '-Inf' -> '-Infinity' |
| 142 | trmx322 trim NaN -> NaN |
| 143 | trmx323 trim sNaN -> sNaN |
| 144 | trmx324 trim NaN999 -> NaN999 |
| 145 | trmx325 trim sNaN777 -> sNaN777 |
| 146 | trmx326 trim -NaN -> -NaN |
| 147 | trmx327 trim -sNaN -> -sNaN |
| 148 | trmx328 trim -NaN999 -> -NaN999 |
| 149 | trmx329 trim -sNaN777 -> -sNaN777 |
| 150 | |
| 151 | -- Null test |
| 152 | trmx900 trim # -> NaN Invalid_operation |