mirror of
https://github.com/python/cpython.git
synced 2026-05-21 20:03:06 -04:00
353750c405
fully updated to the latests Decimal Specification (v1.66) and the latests test cases (v2.56). Thanks to Mark Dickinson for all his help during this process.
176 lines
8.0 KiB
Plaintext
176 lines
8.0 KiB
Plaintext
------------------------------------------------------------------------
|
|
-- dqCopySign.decTest -- quiet decQuad 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
|
|
|
|
-- 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
|
|
|