summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/ddCopySign.decTest
blob: 6a78083ad550a833efa6c4331db5962471e013bd (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
------------------------------------------------------------------------
-- ddCopySign.decTest -- quiet decDouble copy with sign from rhs      --
-- Copyright (c) IBM Corporation, 1981, 2008.  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.59

-- All operands and results are decDoubles.
precision:   16
maxExponent: 384
minExponent: -383
extended:    1
clamp:       1
rounding:    half_even

-- Sanity check
ddcps001 copysign       +7.50     11 -> 7.50

-- Infinities
ddcps011 copysign  Infinity       11 -> Infinity
ddcps012 copysign  -Infinity      11 -> Infinity

-- NaNs, 0 payload
ddcps021 copysign         NaN     11 -> NaN
ddcps022 copysign        -NaN     11 -> NaN
ddcps023 copysign        sNaN     11 -> sNaN
ddcps024 copysign       -sNaN     11 -> sNaN

-- NaNs, non-0 payload
ddcps031 copysign       NaN10     11 -> NaN10
ddcps032 copysign      -NaN10     11 -> NaN10
ddcps033 copysign      sNaN10     11 -> sNaN10
ddcps034 copysign     -sNaN10     11 -> sNaN10
ddcps035 copysign       NaN7      11 -> NaN7
ddcps036 copysign      -NaN7      11 -> NaN7
ddcps037 copysign      sNaN101    11 -> sNaN101
ddcps038 copysign     -sNaN101    11 -> sNaN101

-- finites
ddcps101 copysign          7      11 -> 7
ddcps102 copysign         -7      11 -> 7
ddcps103 copysign         75      11 -> 75
ddcps104 copysign        -75      11 -> 75
ddcps105 copysign       7.50      11 -> 7.50
ddcps106 copysign      -7.50      11 -> 7.50
ddcps107 copysign       7.500     11 -> 7.500
ddcps108 copysign      -7.500     11 -> 7.500

-- zeros
ddcps111 copysign          0      11 -> 0
ddcps112 copysign         -0      11 -> 0
ddcps113 copysign       0E+4      11 -> 0E+4
ddcps114 copysign      -0E+4      11 -> 0E+4
ddcps115 copysign     0.0000      11 -> 0.0000
ddcps116 copysign    -0.0000      11 -> 0.0000
ddcps117 copysign      0E-141     11 -> 0E-141
ddcps118 copysign     -0E-141     11 -> 0E-141

-- full coefficients, alternating bits
ddcps121 copysign  2682682682682682            11 -> 2682682682682682
ddcps122 copysign  -2682682682682682           11 -> 2682682682682682
ddcps123 copysign  1341341341341341            11 -> 1341341341341341
ddcps124 copysign  -1341341341341341           11 -> 1341341341341341

-- Nmax, Nmin, Ntiny
ddcps131 copysign  9.999999999999999E+384      11 -> 9.999999999999999E+384
ddcps132 copysign  1E-383                      11 -> 1E-383
ddcps133 copysign  1.000000000000000E-383      11 -> 1.000000000000000E-383
ddcps134 copysign  1E-398                      11 -> 1E-398

ddcps135 copysign  -1E-398                     11 -> 1E-398
ddcps136 copysign  -1.000000000000000E-383     11 -> 1.000000000000000E-383
ddcps137 copysign  -1E-383                     11 -> 1E-383
ddcps138 copysign  -9.999999999999999E+384     11 -> 9.999999999999999E+384

-- repeat with negative RHS

-- Infinities
ddcps211 copysign  Infinity       -34 -> -Infinity
ddcps212 copysign  -Infinity      -34 -> -Infinity

-- NaNs, 0 payload
ddcps221 copysign         NaN     -34 -> -NaN
ddcps222 copysign        -NaN     -34 -> -NaN
ddcps223 copysign        sNaN     -34 -> -sNaN
ddcps224 copysign       -sNaN     -34 -> -sNaN

-- NaNs, non-0 payload
ddcps231 copysign       NaN10     -34 -> -NaN10
ddcps232 copysign      -NaN10     -34 -> -NaN10
ddcps233 copysign      sNaN10     -34 -> -sNaN10
ddcps234 copysign     -sNaN10     -34 -> -sNaN10
ddcps235 copysign       NaN7      -34 -> -NaN7
ddcps236 copysign      -NaN7      -34 -> -NaN7
ddcps237 copysign      sNaN101    -34 -> -sNaN101
ddcps238 copysign     -sNaN101    -34 -> -sNaN101

-- finites
ddcps301 copysign          7      -34 -> -7
ddcps302 copysign         -7      -34 -> -7
ddcps303 copysign         75      -34 -> -75
ddcps304 copysign        -75      -34 -> -75
ddcps305 copysign       7.50      -34 -> -7.50
ddcps306 copysign      -7.50      -34 -> -7.50
ddcps307 copysign       7.500     -34 -> -7.500
ddcps308 copysign      -7.500     -34 -> -7.500

-- zeros
ddcps311 copysign          0      -34 -> -0
ddcps312 copysign         -0      -34 -> -0
ddcps313 copysign       0E+4      -34 -> -0E+4
ddcps314 copysign      -0E+4      -34 -> -0E+4
ddcps315 copysign     0.0000      -34 -> -0.0000
ddcps316 copysign    -0.0000      -34 -> -0.0000
ddcps317 copysign      0E-141     -34 -> -0E-141
ddcps318 copysign     -0E-141     -34 -> -0E-141

-- full coefficients, alternating bits
ddcps321 copysign  2682682682682682            -34 -> -2682682682682682
ddcps322 copysign  -2682682682682682           -34 -> -2682682682682682
ddcps323 copysign  1341341341341341            -34 -> -1341341341341341
ddcps324 copysign  -1341341341341341           -34 -> -1341341341341341

-- Nmax, Nmin, Ntiny
ddcps331 copysign  9.999999999999999E+384      -34 -> -9.999999999999999E+384
ddcps332 copysign  1E-383                      -34 -> -1E-383
ddcps333 copysign  1.000000000000000E-383      -34 -> -1.000000000000000E-383
ddcps334 copysign  1E-398                      -34 -> -1E-398

ddcps335 copysign  -1E-398                     -34 -> -1E-398
ddcps336 copysign  -1.000000000000000E-383     -34 -> -1.000000000000000E-383
ddcps337 copysign  -1E-383                     -34 -> -1E-383
ddcps338 copysign  -9.999999999999999E+384     -34 -> -9.999999999999999E+384

-- Other kinds of RHS
ddcps401 copysign          701    -34 -> -701
ddcps402 copysign         -720    -34 -> -720
ddcps403 copysign          701    -0  -> -701
ddcps404 copysign         -720    -0  -> -720
ddcps405 copysign          701    +0  ->  701
ddcps406 copysign         -720    +0  ->  720
ddcps407 copysign          701    +34 ->  701
ddcps408 copysign         -720    +34 ->  720

ddcps413 copysign          701    -Inf  -> -701
ddcps414 copysign         -720    -Inf  -> -720
ddcps415 copysign          701    +Inf  ->  701
ddcps416 copysign         -720    +Inf  ->  720

ddcps420 copysign          701    -NaN  -> -701
ddcps421 copysign         -720    -NaN  -> -720
ddcps422 copysign          701    +NaN  ->  701
ddcps423 copysign         -720    +NaN  ->  720
ddcps425 copysign         -720    +NaN8 ->  720

ddcps426 copysign          701    -sNaN  -> -701
ddcps427 copysign         -720    -sNaN  -> -720
ddcps428 copysign          701    +sNaN  ->  701
ddcps429 copysign         -720    +sNaN  ->  720
ddcps430 copysign         -720    +sNaN3 ->  720