HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_fractions.cpython-310.opt-2.pyc
o

�i�v�@s�	ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZmZddl
mZmZejZGdd�de�ZGdd	�d	e�ZGd
d�dej�Zdd
�ZGdd�de
j�Zedkrle
��dSdS)�)�Decimal)�requires_IEEE_754N)�copy�deepcopy)�dumps�loadsc@sZeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZeZdS)�
DummyFloatcCst|t�s	td��||_dS)Nz-DummyFloat can only be initialized from float)�
isinstance�float�	TypeError�value��selfr�r�0/usr/local/lib/python3.10/test/test_fractions.py�__init__s

zDummyFloat.__init__cCs:t|tj�r|t�|j�|�St|t�r||j|j�StS�N)r	�numbers�Rational�F�
from_floatrr�NotImplemented)r�other�oprrr�_richcmps

zDummyFloat._richcmpcC�|�|tj�Sr)r�operator�eq�rrrrr�__eq__!�zDummyFloat.__eq__cCrr)rr�lerrrr�__le__"r zDummyFloat.__le__cCrr)rr�ltrrrr�__lt__#r zDummyFloat.__lt__cCrr)rr�gerrrr�__ge__$r zDummyFloat.__ge__cCrr)rr�gtrrrr�__gt__%r zDummyFloat.__gt__cC�dSrr�rrrr�	__float__(�zDummyFloat.__float__cCr)rrrrrr�__sub__,r,zDummyFloat.__sub__N)
�__name__�
__module__�__qualname__rrrr"r$r&r(r+r-�__rsub__rrrrrsrc@sFeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
DummyRationalcCs$t�||�}|||_|||_dSr)�math�gcd�num�den)rr5r6�grrrr4s
zDummyRational.__init__cCs(t|tj�r|j|jko|j|jkStSr)r	�	fractions�Fractionr5�
_numeratorr6�_denominatorrrrrrr9s

�zDummyRational.__eq__cCs|j|j|j|jkSr�r5r;r6r:rrrrr$@�zDummyRational.__lt__cCs|j|j|j|jkSrr<rrrrr(Cr=zDummyRational.__gt__cCs|j|j|j|jkSrr<rrrrr"Fr=zDummyRational.__le__cCs|j|j|j|jkSrr<rrrrr&Ir=zDummyRational.__ge__cCr)rrr*rrrr+Nr,zDummyRational.__float__N)
r.r/r0rrr$r(r"r&r+rrrrr21sr2c@seZdZdS)�
DummyFractionN)r.r/r0rrrrr>Qsr>cCs|j|jfSr)�	numerator�denominator)�rrrr�_componentsUsrBc@s eZdZdd�Zdd�Zdd�Zdd�Zed	d
��Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Z d;d<�Z!d=d>�Z"d?d@�Z#dAdB�Z$dCdD�Z%dES)F�FractionTestcCs&	|�t|�t|��|�||�dSr)�assertEqual�type�rZexpected�actualrrr�assertTypedEquals[szFractionTest.assertTypedEqualscCs2	|�||�|�ttt|��ttt|���dSr)ZassertTupleEqualZassertListEqual�list�maprErFrrr�assertTypedTupleEquals`s$z#FractionTest.assertTypedTupleEqualsc
Os`	z	||i|��Wn|y%}z|�|t|��WYd}~dSd}~ww|�d|j�dS)Nz
%s not raised)rD�strZfailr.)r�exc_type�message�callable�args�kwargs�errr�assertRaisesMessagees��z FractionTest.assertRaisesMessagec	Cs�|�dtt���|�dttd���|�dtttdd����|�dttdd���|�dttdd���|�d	ttd
d
���|�dttdd
���|�dttdd���|�dttd���|�dtttdd�d���|�dttdtdd����|�dtttdd�tdd����|�tdtdd�|�ttd�|�ttd d�|�ttdd!�|�ttdd"�|�ttddd�dS)#N�r�)�rUrV�rV�rX)���rUrYrU)rUrU���)rU���
)rV�r^)�m+?�RrUr_)rX�M�)���r\r[����	)i�	i�	��c�qzFraction(12, 0)�ry�?@�3/2yy�?)rDrBrrS�ZeroDivisionError�assertRaisesrr*rrr�testInitos("�zFractionTest.testInitcCsv|�dttd���|�dttd���|�dttd���|�tttd��|�tttd��|�tttd	��dS)
N)r\r[�@rT��)��L�33fl皙�����?�nan�inf�-inf)rDrBrrk�
ValueErrorr
�
OverflowErrorr*rrr�testInitFromFloat�s
�zFractionTest.testInitFromFloatcCs�|�dtttd����|�dtttd����|�dtttd����|�tttd��|�tttd��|�tttd	��|�tttd
��dS)N)rar]z1.1)rV��z3.5e-2rTz.000e20rq�snanrrrs)rDrBrrrkrtrur*rrr�testInitFromDecimal�s���z FractionTest.testInitFromDecimalcCs�|�dttd���|�dttd���|�dttd���|�dttd���|�dttd	���|�d
ttd���|�dttd
���|�dttd���|�dttd���|�dttd���|�dttd���|�dttd���|�dttd���|�dttd���|�tdtd�|�tdtd�|�tdtd �|�td!td"�|�td#td$�|�td%td&�|�td'td(�|�td)td*�|�td+td,�|�td-td.�dS)/N)r\rU�5)rXr[riz 
  +3/2)���r[z-3/2  )�
r[z    013/02 
  )�r\z 3.2 )i�r\z -3.2 )r{rUz -3. )rXr\z .6 )rUi5z32.e-5)i@BrUz1E+06)i���rUz-1.23e4rTz .0e+0	z-0.000e0zFraction(3, 0)z3/0z"Invalid literal for Fraction: '3/'z3/z"Invalid literal for Fraction: '/2'z/2z$Invalid literal for Fraction: '3 /2'z3 /2z$Invalid literal for Fraction: '3/+2'z3/+2z%Invalid literal for Fraction: '+ 3/2'z+ 3/2z#Invalid literal for Fraction: '3a2'Z3a2z%Invalid literal for Fraction: '3/7.2'z3/7.2z%Invalid literal for Fraction: '3.2/7'z3.2/7z!Invalid literal for Fraction: '.'�.)rDrBrrSrjrtr*rrr�testFromString�sl����������zFractionTest.testFromStringcCs�tdd�}|�dd�|�dt|��|�tt|dd�|�tt|dd	�|�dt|��d
|_d|_|�dt|��|�	td
d�|�dS)NrVrXr[r^rWr?rhr@��)r�r[)
rrrDrBrk�AttributeError�setattrr:r;�assertNotEqual�rrArrr�
testImmutable�s
zFractionTest.testImmutablecCs*|�ttjd�|�dtt�d���d}|�|dftt�|���|�dtt�d���|�dtt�d���|�d	tt�d
���|�dtt�d���|�td
�tt�d���|�dtt�d���|�dtt�d���d}||}|�tdtj|�|�tdtj|�|�t	dtj|�dS)N�@@)r]rUr]l�{�C	rUrTrn�$@)���r[g�)ll+?�RrU�J��-�Dr_)rol g������	@g��(cannot convert Infinity to integer ratio�#cannot convert NaN to integer ratio)
rkrrrrDrBr
rSrurt)rZbigintrrrqrrr�
testFromFloat�s:�����zFractionTest.testFromFloatcCs|�ttjd�|�tdd�t�d��|�td�t�td���|�tdd�t�td���|�tdd�t�td	���|�td
�t�td���|�dtdd�t�td
���|�tdtjtd��|�tdtjtd��|�tdtjtd��|�tdtjtd��dS)Nr�r]rUrz-0r\z0.5i�z5e-3i�Z5e3l�7�3M�e'z 0.999999999999999999999999999999r�rrrsr�rqrx)	rkrrZfrom_decimalrDrrSrurtr*rrr�testFromDecimals2�
�
�
�
�zFractionTest.testFromDecimalcCs\|�tdd���d�|�tdd���d�|�tdd���d�|�tdd���d�dS)	Nr�r�)r[rX���)rZrXi����rrT)rDr�as_integer_ratior*rrr�test_as_integer_ratiosz"FractionTest.test_as_integer_ratiocCs�td�}|�|�d�tdd��|�|�d�tdd��|�|�d�tdd��|�|�d�tdd��|�td	d
��d�td��|�td	d
��d
�tdd
��|�td��d�td��dD]
}|�tdtd�j|�qadS)Nz3.1415926535897932i'rfrgi�����piM�j��rw�drU�e�fr)rrYz$max_denominator should be at least 1)rrDZlimit_denominatorrSrt)rZrpi�irrr�testLimitDenominators
��z!FractionTest.testLimitDenominatorcCsr|�dt�tdd���|�dt�tdd���|�dt�tdd���|�dt�tdd���|�dt�tdd���|�dttdd���|�dttdd���|�dttd	d���|�dttd
d���|�dttdd���|�dt	tdd���|�d
t	tdd���|�dt
tdd���|�tt
td��|�
dt
ttd�td����|�dttdd���dS)NrYi����r]rUrarZrcrr������FTrXr[rpA�22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222227gUUUUUU�?A�33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331��������?)rHr3�truncr�floor�ceil�int�roundrD�boolr
rkru�assertAlmostEqual�complexr*rrr�testConversions-s$�zFractionTest.testConversionscCsrtjGdd�d��}tj�|�|d�}t|�}|�|j|�|�t|�d�|d�}t|�}|�t|�d�dS)Nc@s8eZdZdZdd�Zdd�Zedd��Zdd	�ZeZ	d
S)z=FractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValuerUcSs
||_dSr)rr
rrrrL�
zFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__init__cSs
t|j�Sr)r�rr*rrr�__bool__Or�zFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__bool__cSs|Srrr*rrrr?RszGFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.numeratorcSstd��)Nz&Avoid comparisons in Fraction.__bool__)�AssertionErrorrrrrrWszDFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__eq__N)
r.r/r0r@rr��propertyr?rr$rrrr�CustomValueHs
r�rUTrF)	�	functools�total_orderingrr�registerrZassertIsr?r�)rr�r?rArrr�testBoolGuarateesBoolReturnEsz(FractionTest.testBoolGuarateesBoolReturncCs�|�td�ttd�d��|�td�ttd�d��|�td�ttd�d��|�tdd�ttd	d
�d��|�tdd�ttdd
�d��dS)
Ni8���ij���rZi�����rYr]r�r�rUi��)rHrr�r*rrr�	testRoundis
"zFractionTest.testRoundcCs�|�tdd�tdd�tdd��|�tdd�tdd�tdd��|�tdd�tdd�tdd��|�tdd�tdd�tdd	��|�tdd	�tdd�tdd��|�td
d�tdd	�tdd��|�dtd
d�tdd��|�dtdd�td��|�tdd�tdd�tdd��|�tdd�tdd�tdd��|�td�tdd�fttdd�tdd���|�td�tdd�fttdd�tdd���|�tdd�tdd�td��|�tdd�tdd�td��|�dtd	�tdd��|�tdd�tdd�
�ttd�tdd��}|�|jd�|�|jd�tdd�d}|�|tdd��|�|jd�|�|j	d�tdd�d}|�|tdd��|�|jd�|�|j	d�tdd�d}|�|td	d��|�|jd	�|�|j	d�dS)NrUr[r]r\r{�r�rXr�r��rZrdr_rVr���@rYr)
rDrrH�divmod�powr��real�imagr?r@)r�z�prrr�testArithmeticps>"""""""",,  zFractionTest.testArithmeticc	Cs^|�tdd�tdddd�tdddd��|�tdd�td	d
d�tdd	d
��|�d
tdd�fttdddd�tdddd���|�d	ddtd	d
d�tdd	d
��|�dtdd	d
�tdd	d
��|�dtd	d	d
�fttdd	d
�tdd	d
���|�d	ddtdd�fttd	d
d�tdd	d
���dS)Nl�b;e�f�Op�Umn�P|�}�l�~J�w�5�PHyT#/jei�4�T�r]�#rUlP��~�cegrVlr[r�rXr\l��_�rwr^)rHrrKr�r*rrr�testLargeArithmetic�sH�"����$������z FractionTest.testLargeArithmeticcCs�|�tdd�tdd�d�|�dtdd�d�|�dtdd�d�|�tdd�dtdd��|�ddtdd��|�ddtdd��|�tdd�tdd�d�|�d	tdd�d�|�d
tdd�d�|�tdd�dtdd��|�ddtdd��|�d
dtdd��|�tdd�tdd�d�|�dtdd�d�|�dtdd�d�|�tdd�dtdd��|�ddtdd��|�ddtdd��|�tdd�tdd�d�|�dtdd�d�|�dtdd�d�|�tdd�dtdd��|�ddtdd��|�ddtdd��|�dtdd�d�|�dtdd�d�|�ddtdd��|�ddtdd��|�ddtdd��|�tdd�tdd�d�|�dtdd�d�|�tdd�dtdd��|�ddtdd��|�dtdd�td��|�td�tdd�td��|�td�tdd�td��|�dtdd�td��|�dtdd�fttdd�d��|�tdd�ttdd�d��|�dtd�ftdtdd���|�tdd�tdtdd���|�tdtd��ttdd�td���|�tdtd��ttdd�td���|�tdtd��ttdd�td���|�tdtd��ttdd�td���|�tdd�tdd�d�|�tdd�tdd�d�|�dtdd�d�|�dtdd�d�|�ddtdd��tdtdd��}|�d|j�|�d|j	�|�tdd�dtdd��|�d dtdd��|�d!d tdd��|�ddtdd��|�
ttjtdd�d�dS)"Nrar]rUg�������?g�?y�������?y�?rbg�������y�������rdg�������?y�������?rpr�r�y$@r�r_l�d�&O�!g"@g�������?rrrsrYg��������r�rZr[r�r�g�?)
rHrr
rKr�r�r�r�rDr�rkrjr)rr�rrr�testMixedArithmetic�sx" &&&&

�z FractionTest.testMixedArithmeticcCs<|�ttjtdd�td��|�ttjtd�tdd��dS)NrXraz	3.1415926)rkrr�addrrr*rrr�testMixingWithDecimal�s
�
�z"FractionTest.testMixingWithDecimalcCs�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�dS)NrUr[rX)�
assertTruer�assertFalser*rrr�testComparisonsszFractionTest.testComparisonscCs�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�|�tdd�tdd�k�dS)NrUr[rXr�rV)r�rr2r�r*rrr�testComparisonsDummyRationals8z)FractionTest.testComparisonsDummyRationalcCs�td�}tdd�}|�||k�|�||kp||k�|�||k�|�||ko+||k�|�||k�|�||kp=||k�|�||k�|�||koO||k�dS)NgUUUUUU�?rUrX)rrr�r�)r�x�yrrr�testComparisonsDummyFloat+s
z&FractionTest.testComparisonsDummyFloatcCs4|�dtdd�k�|�dtdd�k�|�tdd�dk�|�tdd�dk�|�tdd�dk�|�tdd�dk�|�dtdd�k�|�dtdd�k�|�td	�tdd�k�|�td
�tdd�k�|�td
�tdd�k�|�tdd�td	�k�|�tdd�td
�k�|�tdd�td
�k�dS)Nr[r\r�rXrU�333333�?皙�����?��?rrrsrr]rqr{rV�rh�����r�rr�r
r*rrr�
testMixedLess7szFractionTest.testMixedLesscCs4|�dtdd�k�|�dtdd�k�|�tdd�dk�|�tdd�dk�|�dtdd�k�|�dtdd�k�|�tdd�dk�|�tdd�dk�|�td	�tdd�k�|�td
�tdd�k�|�td
�tdd�k�|�tdd�td	�k�|�tdd�td
�k�|�tdd�td
�k�dS)Nr�rUr[r�r�r�rXr\rrrsrr]rqr{rVr�rhr�r�r�r*rrr�testMixedLessEqualIszFractionTest.testMixedLessEqualcCs�|�td�td�k�|�dttt�d�d��k�|�dtt�d�d�k�|�dtt�d�d�k�|�dtt�d�d�k�|�dtt�d�d�k�dS)Nr_r�rU)r�rr
r3r�r�r*rrr�testBigFloatComparisonsZs  z$FractionTest.testBigFloatComparisonscCs�|�td�td�k�|�ttjtd�td��|�ttjtd�td��tdd�}tdd�}tdd�}|�||k�|�||k�|�||k�|�||k�tj	tjtjtj
fD]"}|�t|||�|�t|||�|�t|||�|�t|||�qZdS)Nr_rXr�g�?r�g�������?)r�rr�rkrrr'r!r�r#r%)rr�r��wrrrr�testBigComplexComparisonsds 


�z&FractionTest.testBigComplexComparisonscCs|�dtdd�k�|�dtdd�k�|�tdd�dk�|�tdd�dk�|�dtdd�k�|�dtdd�k�|�tdd�dk�|�tdd�dk�|�tdd�td	�k�|�td	�tdd
�k�|�tdd�td�k�|�td�tdd�k�dS)
Nr�rUr[r�r�r�rXr\rqrVrrrsr�r*rrr�testMixedEqualvszFractionTest.testMixedEqualcCsp|�dttdd���|�dttd���|�dttdd���|�d	ttdd���|�d
ttdd���dS)NzFraction(7, 3)rVrXz Fraction(6283185307, 2000000000)z3.1415926535z#Fraction(-1, 100000000000000000000)rUl���� F�x:^Vz7/3�7)rD�reprrrLr*rrr�testStringification�s
��z FractionTest.testStringificationcCs�tjj}tjj}|�td�ttdd���|�tdd�ttdd���|�ttd��ttd���|�|ttd|���|�ttd��td��	��dS)	Nrmr\r[r]�2r_rUrY)
�sys�	hash_info�modulusrrrD�hashrr�r
�__hash__)rZhmodZhinfrrr�testHash�s  zFractionTest.testHashc	Cs�td�}d|dddddf\}}}}}}}t||�tdd�krH|}|||d}}|||d}}|||}||7}t||�tdd�ks|�tj|�dS)NrXrrU��ʚ;r�� )r�absr�r3�pi)	rZthree�lasts�t�s�nZna�d�darrr�testApproximatePi�s �zFractionTest.testApproximatePicCs�td�}ddtd�dddf\}}}}}}t||�tdd�krJ|}|d7}|||d9}|||9}|d9}||||7}t||�tdd�ks|�t�d�|�dS)NrUrr�r[rY)rr�r�r3�cos)rr�r�r�r�Zfactr5�signrrr�testApproximateCos1�s �z FractionTest.testApproximateCos1cCs�tdd�}tdd�}|�|tt|���|�t|�tt|���|�t|�tt|���|�t|�tt|���|�t|�tt|���|�	|t|��|�	|t|��dS)Nr|rV)
rr>rDrr�idrrr�rH)rrAZdrrrr�test_copy_deepcopy_pickle�s

z&FractionTest.test_copy_deepcopy_picklecCs tdd�}|�tt|dd�dS)Nr|rV�ar])rrkr�r�r�rrr�
test_slots�s
zFractionTest.test_slotscCshGdd�dt�}t�|d�|d��}|�|jd�|�|jd�|�t|j�|�|�t|j�|�dS)Nc@s<eZdZdd�Zdd�Zdd�Zedd��Zed	d
��ZdS)z-FractionTest.test_int_subclass.<locals>.myintcSst|�t|�t|��Sr�rEr�rrrr�__mul__�r=z5FractionTest.test_int_subclass.<locals>.myint.__mul__cSst|�t|�t|��Srr�rrrr�__floordiv__�r=z:FractionTest.test_int_subclass.<locals>.myint.__floordiv__cSst|�t|�t|��}|Srr�)rrr�rrr�__mod__�sz5FractionTest.test_int_subclass.<locals>.myint.__mod__cSst|�t|��Srr�r*rrrr?�sz7FractionTest.test_int_subclass.<locals>.myint.numeratorcSst|�d�S)NrU)rEr*rrrr@�sz9FractionTest.test_int_subclass.<locals>.myint.denominatorN)	r.r/r0r�r�r�r�r?r@rrrr�myint�s
r�rXr�rUr[)r�r8r9rDr?r@rE)rr��frrr�test_int_subclass�szFractionTest.test_int_subclassN)&r.r/r0rHrKrSrlrrvryrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrCYsH



5$""E 
	
rC�__main__)ZdecimalrZtest.supportrr3rrr8r�r�Zunittestrr�picklerrr9r�objectrr2r>rBZTestCaserCr.�mainrrrr�<module>s4  �