------------------------------------------------------------------------ -- dqCopySign.decTest -- quiet decQuad copy with sign from rhs -- -- Copyright (c) Mike Cowlishaw, 1981, 2010. All rights reserved. -- -- Parts copyright (c) IBM Corporation, 1981, 2008. -- ------------------------------------------------------------------------ -- Please see the document "General Decimal Arithmetic Testcases" -- -- at http://speleotrove.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, mfc@speleotrove.com -- ------------------------------------------------------------------------ version: 2.62 -- 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