summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/copysign.decTest
blob: 6b20fda580b3280e27cef3c073c08b97337f4f5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
------------------------------------------------------------------------
-- copysign.decTest -- quiet copy with sign from rhs                  --
-- Copyright (c) IBM Corporation, 1981, 2007.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.56

extended:    1
precision:   9
rounding:    half_up
maxExponent: 999
minExponent: -999

-- Sanity check, and examples from decArith
cpsx001 copysign   +7.50       11  -> 7.50
cpsx002 copysign   '1.50'   '7.33' -> 1.50
cpsx003 copysign  '-1.50'   '7.33' -> 1.50
cpsx004 copysign   '1.50'  '-7.33' -> -1.50
cpsx005 copysign  '-1.50'  '-7.33' -> -1.50

-- Infinities
cpsx011 copysign  Infinity       11 -> Infinity
cpsx012 copysign  -Infinity      11 -> Infinity

-- NaNs, 0 payload
cpsx021 copysign         NaN     11 -> NaN
cpsx022 copysign        -NaN     11 -> NaN
cpsx023 copysign        sNaN     11 -> sNaN
cpsx024 copysign       -sNaN     11 -> sNaN

-- NaNs, non-0 payload
cpsx031 copysign       NaN10     11 -> NaN10
cpsx032 copysign      -NaN10     11 -> NaN10
cpsx033 copysign      sNaN10     11 -> sNaN10
cpsx034 copysign     -sNaN10     11 -> sNaN10
cpsx035 copysign       NaN7      11 -> NaN7
cpsx036 copysign      -NaN7      11 -> NaN7
cpsx037 copysign      sNaN101    11 -> sNaN101
cpsx038 copysign     -sNaN101    11 -> sNaN101

-- finites
cpsx101 copysign          7      11 -> 7
cpsx102 copysign         -7      11 -> 7
cpsx103 copysign         75      11 -> 75
cpsx104 copysign        -75      11 -> 75
cpsx105 copysign       7.50      11 -> 7.50
cpsx106 copysign      -7.50      11 -> 7.50
cpsx107 copysign       7.500     11 -> 7.500
cpsx108 copysign      -7.500     11 -> 7.500

-- zeros
cpsx111 copysign          0      11 -> 0
cpsx112 copysign         -0      11 -> 0
cpsx113 copysign       0E+4      11 -> 0E+4
cpsx114 copysign      -0E+4      11 -> 0E+4
cpsx115 copysign     0.0000      11 -> 0.0000
cpsx116 copysign    -0.0000      11 -> 0.0000
cpsx117 copysign      0E-141     11 -> 0E-141
cpsx118 copysign     -0E-141     11 -> 0E-141

-- full coefficients, alternating bits
cpsx121 copysign   268268268           11 -> 268268268
cpsx122 copysign  -268268268           11 -> 268268268
cpsx123 copysign   134134134           11 -> 134134134
cpsx124 copysign  -134134134           11 -> 134134134

-- Nmax, Nmin, Ntiny
cpsx131 copysign  9.99999999E+999      11 -> 9.99999999E+999
cpsx132 copysign  1E-999               11 -> 1E-999
cpsx133 copysign  1.00000000E-999      11 -> 1.00000000E-999
cpsx134 copysign  1E-1007              11 -> 1E-1007

cpsx135 copysign  -1E-1007             11 -> 1E-1007
cpsx136 copysign  -1.00000000E-999     11 -> 1.00000000E-999
cpsx137 copysign  -1E-999              11 -> 1E-999
cpsx138 copysign  -9.99999999E+999     11 -> 9.99999999E+999

-- repeat with negative RHS

-- Infinities
cpsx211 copysign  Infinity       -34 -> -Infinity
cpsx212 copysign  -Infinity      -34 -> -Infinity

-- NaNs, 0 payload
cpsx221 copysign         NaN     -34 -> -NaN
cpsx222 copysign        -NaN     -34 -> -NaN
cpsx223 copysign        sNaN     -34 -> -sNaN
cpsx224 copysign       -sNaN     -34 -> -sNaN

-- NaNs, non-0 payload
cpsx231 copysign       NaN10     -34 -> -NaN10
cpsx232 copysign      -NaN10     -34 -> -NaN10
cpsx233 copysign      sNaN10     -34 -> -sNaN10
cpsx234 copysign     -sNaN10     -34 -> -sNaN10
cpsx235 copysign       NaN7      -34 -> -NaN7
cpsx236 copysign      -NaN7      -34 -> -NaN7
cpsx237 copysign      sNaN101    -34 -> -sNaN101
cpsx238 copysign     -sNaN101    -34 -> -sNaN101

-- finites
cpsx301 copysign          7      -34 -> -7
cpsx302 copysign         -7      -34 -> -7
cpsx303 copysign         75      -34 -> -75
cpsx304 copysign        -75      -34 -> -75
cpsx305 copysign       7.50      -34 -> -7.50
cpsx306 copysign      -7.50      -34 -> -7.50
cpsx307 copysign       7.500     -34 -> -7.500
cpsx308 copysign      -7.500     -34 -> -7.500

-- zeros
cpsx311 copysign          0      -34 -> -0
cpsx312 copysign         -0      -34 -> -0
cpsx313 copysign       0E+4      -34 -> -0E+4
cpsx314 copysign      -0E+4      -34 -> -0E+4
cpsx315 copysign     0.0000      -34 -> -0.0000
cpsx316 copysign    -0.0000      -34 -> -0.0000
cpsx317 copysign      0E-141     -34 -> -0E-141
cpsx318 copysign     -0E-141     -34 -> -0E-141

-- full coefficients, alternating bits
cpsx321 copysign   268268268          -18 -> -268268268
cpsx322 copysign  -268268268          -18 -> -268268268
cpsx323 copysign   134134134          -18 -> -134134134
cpsx324 copysign  -134134134          -18 -> -134134134

-- Nmax, Nmin, Ntiny
cpsx331 copysign  9.99999999E+999     -18 -> -9.99999999E+999
cpsx332 copysign  1E-999              -18 -> -1E-999
cpsx333 copysign  1.00000000E-999     -18 -> -1.00000000E-999
cpsx334 copysign  1E-1007             -18 -> -1E-1007

cpsx335 copysign  -1E-1007            -18 -> -1E-1007
cpsx336 copysign  -1.00000000E-999    -18 -> -1.00000000E-999
cpsx337 copysign  -1E-999             -18 -> -1E-999
cpsx338 copysign  -9.99999999E+999    -18 -> -9.99999999E+999

-- Other kinds of RHS
cpsx401 copysign          701    -34 -> -701
cpsx402 copysign         -720    -34 -> -720
cpsx403 copysign          701    -0  -> -701
cpsx404 copysign         -720    -0  -> -720
cpsx405 copysign          701    +0  ->  701
cpsx406 copysign         -720    +0  ->  720
cpsx407 copysign          701    +34 ->  701
cpsx408 copysign         -720    +34 ->  720

cpsx413 copysign          701    -Inf  -> -701
cpsx414 copysign         -720    -Inf  -> -720
cpsx415 copysign          701    +Inf  ->  701
cpsx416 copysign         -720    +Inf  ->  720

cpsx420 copysign          701    -NaN  -> -701
cpsx421 copysign         -720    -NaN  -> -720
cpsx422 copysign          701    +NaN  ->  701
cpsx423 copysign         -720    +NaN  ->  720
cpsx425 copysign         -720    +NaN8 ->  720

cpsx426 copysign          701    -sNaN  -> -701
cpsx427 copysign         -720    -sNaN  -> -720
cpsx428 copysign          701    +sNaN  ->  701
cpsx429 copysign         -720    +sNaN  ->  720
cpsx430 copysign         -720    +sNaN3 ->  720