summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/dqCopySign.decTest
blob: ce794b7c35c56574c9ce6769410d7515ee7558b1 (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
------------------------------------------------------------------------
-- dqCopySign.decTest -- quiet decQuad 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 decQuads.
extended:    1
clamp:       1
precision:   34
maxExponent: 6144
minExponent: -6143
rounding:    half_even

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

-- Infinities
dqcps011 copysign  Infinity       11 -> Infinity
dqcps012 copysign  -Infinity      11 -> Infinity

-- NaNs, 0 payload
dqcps021 copysign         NaN     11 -> NaN
dqcps022 copysign        -NaN     11 -> NaN
dqcps023 copysign        sNaN     11 -> sNaN
dqcps024 copysign       -sNaN     11 -> sNaN

-- NaNs, non-0 payload
dqcps031 copysign       NaN10     11 -> NaN10
dqcps032 copysign      -NaN10     11 -> NaN10
dqcps033 copysign      sNaN10     11 -> sNaN10
dqcps034 copysign     -sNaN10     11 -> sNaN10
dqcps035 copysign       NaN7      11 -> NaN7
dqcps036 copysign      -NaN7      11 -> NaN7
dqcps037 copysign      sNaN101    11 -> sNaN101
dqcps038 copysign     -sNaN101    11 -> sNaN101

-- finites
dqcps101 copysign          7      11 -> 7
dqcps102 copysign         -7      11 -> 7
dqcps103 copysign         75      11 -> 75
dqcps104 copysign        -75      11 -> 75
dqcps105 copysign       7.50      11 -> 7.50
dqcps106 copysign      -7.50      11 -> 7.50
dqcps107 copysign       7.500     11 -> 7.500
dqcps108 copysign      -7.500     11 -> 7.500

-- zeros
dqcps111 copysign          0      11 -> 0
dqcps112 copysign         -0      11 -> 0
dqcps113 copysign       0E+4      11 -> 0E+4
dqcps114 copysign      -0E+4      11 -> 0E+4
dqcps115 copysign     0.0000      11 -> 0.0000
dqcps116 copysign    -0.0000      11 -> 0.0000
dqcps117 copysign      0E-141     11 -> 0E-141
dqcps118 copysign     -0E-141     11 -> 0E-141

-- full coefficients, alternating bits
dqcps121 copysign   2682682682682682682682682682682682 8  ->  2682682682682682682682682682682682
dqcps122 copysign  -2682682682682682682682682682682682 8  ->  2682682682682682682682682682682682
dqcps123 copysign   1341341341341341341341341341341341 8  ->  1341341341341341341341341341341341
dqcps124 copysign  -1341341341341341341341341341341341 8  ->  1341341341341341341341341341341341

-- Nmax, Nmin, Ntiny
dqcps131 copysign  9.999999999999999999999999999999999E+6144 8 ->  9.999999999999999999999999999999999E+6144
dqcps132 copysign  1E-6143                                   8 ->  1E-6143
dqcps133 copysign  1.000000000000000000000000000000000E-6143 8 ->  1.000000000000000000000000000000000E-6143
dqcps134 copysign  1E-6176                                   8 ->  1E-6176

dqcps135 copysign  -1E-6176                                   8 ->  1E-6176
dqcps136 copysign  -1.000000000000000000000000000000000E-6143 8 ->  1.000000000000000000000000000000000E-6143
dqcps137 copysign  -1E-6143                                   8 ->  1E-6143
dqcps138 copysign  -9.999999999999999999999999999999999E+6144 8 ->  9.999999999999999999999999999999999E+6144

-- repeat with negative RHS

-- Infinities
dqcps211 copysign  Infinity       -34 -> -Infinity
dqcps212 copysign  -Infinity      -34 -> -Infinity

-- NaNs, 0 payload
dqcps221 copysign         NaN     -34 -> -NaN
dqcps222 copysign        -NaN     -34 -> -NaN
dqcps223 copysign        sNaN     -34 -> -sNaN
dqcps224 copysign       -sNaN     -34 -> -sNaN

-- NaNs, non-0 payload
dqcps231 copysign       NaN10     -34 -> -NaN10
dqcps232 copysign      -NaN10     -34 -> -NaN10
dqcps233 copysign      sNaN10     -34 -> -sNaN10
dqcps234 copysign     -sNaN10     -34 -> -sNaN10
dqcps235 copysign       NaN7      -34 -> -NaN7
dqcps236 copysign      -NaN7      -34 -> -NaN7
dqcps237 copysign      sNaN101    -34 -> -sNaN101
dqcps238 copysign     -sNaN101    -34 -> -sNaN101

-- finites
dqcps301 copysign          7      -34 -> -7
dqcps302 copysign         -7      -34 -> -7
dqcps303 copysign         75      -34 -> -75
dqcps304 copysign        -75      -34 -> -75
dqcps305 copysign       7.50      -34 -> -7.50
dqcps306 copysign      -7.50      -34 -> -7.50
dqcps307 copysign       7.500     -34 -> -7.500
dqcps308 copysign      -7.500     -34 -> -7.500

-- zeros
dqcps311 copysign          0      -34 -> -0
dqcps312 copysign         -0      -34 -> -0
dqcps313 copysign       0E+4      -34 -> -0E+4
dqcps314 copysign      -0E+4      -34 -> -0E+4
dqcps315 copysign     0.0000      -34 -> -0.0000
dqcps316 copysign    -0.0000      -34 -> -0.0000
dqcps317 copysign      0E-141     -34 -> -0E-141
dqcps318 copysign     -0E-141     -34 -> -0E-141

-- full coefficients, alternating bits
dqcps321 copysign   2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682
dqcps322 copysign  -2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682
dqcps323 copysign   1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341
dqcps324 copysign  -1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341

-- Nmax, Nmin, Ntiny
dqcps331 copysign  9.999999999999999999999999999999999E+6144 -1  -> -9.999999999999999999999999999999999E+6144
dqcps332 copysign  1E-6143                                   -1  -> -1E-6143
dqcps333 copysign  1.000000000000000000000000000000000E-6143 -1  -> -1.000000000000000000000000000000000E-6143
dqcps334 copysign  1E-6176                                   -1  -> -1E-6176

dqcps335 copysign  -1E-6176                                   -3 -> -1E-6176
dqcps336 copysign  -1.000000000000000000000000000000000E-6143 -3 -> -1.000000000000000000000000000000000E-6143
dqcps337 copysign  -1E-6143                                   -3 -> -1E-6143
dqcps338 copysign  -9.999999999999999999999999999999999E+6144 -3 -> -9.999999999999999999999999999999999E+6144

-- Other kinds of RHS
dqcps401 copysign          701    -34 -> -701
dqcps402 copysign         -720    -34 -> -720
dqcps403 copysign          701    -0  -> -701
dqcps404 copysign         -720    -0  -> -720
dqcps405 copysign          701    +0  ->  701
dqcps406 copysign         -720    +0  ->  720
dqcps407 copysign          701    +34 ->  701
dqcps408 copysign         -720    +34 ->  720

dqcps413 copysign          701    -Inf  -> -701
dqcps414 copysign         -720    -Inf  -> -720
dqcps415 copysign          701    +Inf  ->  701
dqcps416 copysign         -720    +Inf  ->  720

dqcps420 copysign          701    -NaN  -> -701
dqcps421 copysign         -720    -NaN  -> -720
dqcps422 copysign          701    +NaN  ->  701
dqcps423 copysign         -720    +NaN  ->  720
dqcps425 copysign         -720    +NaN8 ->  720

dqcps426 copysign          701    -sNaN  -> -701
dqcps427 copysign         -720    -sNaN  -> -720
dqcps428 copysign          701    +sNaN  ->  701
dqcps429 copysign         -720    +sNaN  ->  720
dqcps430 copysign         -720    +sNaN3 ->  720