mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
	
	
		
			178 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			178 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								-- 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
							 | 
						||
| 
								 | 
							
								
							 |