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