HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/test/__pycache__/test_fractions.cpython-36.pyc
3


 \�g�@s�dZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZm
Z
ddlmZmZejZejZGdd�de�ZGd	d
�d
e�ZGdd�dej�ZGd
d�de
j�Zdd�ZGdd�de
j�Zedkr�e
j�dS)zTests for Lib/fractions.py.�)�Decimal)�requires_IEEE_754N)�copy�deepcopy)�dumps�loadsc@s\eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZeZ
dS)�
DummyFloatz8Dummy float class for testing comparisons with FractionscCst|t�std��||_dS)Nz-DummyFloat can only be initialized from float)�
isinstance�float�	TypeError�value)�selfr�r�&/usr/lib64/python3.6/test_fractions.py�__init__s
zDummyFloat.__init__cCs>t|tj�r|tj|j�|�St|t�r6||j|j�StSdS)N)r	�numbersZRational�F�
from_floatrr�NotImplemented)r
�other�oprrr�_richcmps

zDummyFloat._richcmpcCs|j|tj�S)N)r�operator�eq)r
rrrr�__eq__!szDummyFloat.__eq__cCs|j|tj�S)N)rr�le)r
rrrr�__le__"szDummyFloat.__le__cCs|j|tj�S)N)rr�lt)r
rrrr�__lt__#szDummyFloat.__lt__cCs|j|tj�S)N)rr�ge)r
rrrr�__ge__$szDummyFloat.__ge__cCs|j|tj�S)N)rr�gt)r
rrrr�__gt__%szDummyFloat.__gt__cCsdstd��dS)NFz/__float__ should not be invoked for comparisons)�AssertionError)r
rrr�	__float__(szDummyFloat.__float__cCsdstd��dS)NFz-__sub__ should not be invoked for comparisons)r#)r
rrrr�__sub__,szDummyFloat.__sub__N)�__name__�
__module__�__qualname__�__doc__rrrrrr r"r$r%�__rsub__rrrrrsrc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�
DummyRationalzATest comparison of Fraction with a naive rational implementation.cCs$tj||�}|||_|||_dS)N)�math�gcd�num�den)r
r.r/�grrrr4s
zDummyRational.__init__cCs,t|tj�r$|j|jko"|j|jkStSdS)N)r	�	fractions�Fractionr.�
_numeratorr/�_denominatorr)r
rrrrr9szDummyRational.__eq__cCs|j|j|j|jkS)N)r.r4r/r3)r
rrrrr@szDummyRational.__lt__cCs|j|j|j|jkS)N)r.r4r/r3)r
rrrrr"CszDummyRational.__gt__cCs|j|j|j|jkS)N)r.r4r/r3)r
rrrrrFszDummyRational.__le__cCs|j|j|j|jkS)N)r.r4r/r3)r
rrrrr IszDummyRational.__ge__cCsdstd��dS)NFz__float__ should not be invoked)r#)r
rrrr$NszDummyRational.__float__N)r&r'r(r)rrrr"rr r$rrrrr+1sr+c@seZdZdZdS)�
DummyFractionz6Dummy Fraction subclass for copy and deepcopy testing.N)r&r'r(r)rrrrr5Qsr5c@seZdZdd�ZdS)�GcdTestcCsd|jtd��tdd�WdQRXtj���.tjddt�|jdtdd��|jdtdd��|jdtdd��|jdtdd��|jdtdd��|jdtdd��|jdtdd��|jdtdd��|jdtd	d
��|jdtd
d��|jtdd
�d�|jtd	d
�d�|jttd	�td
��td��|jttd	d�td
d��tdd��WdQRXdS)Nzfractions\.gcd��ignorer�����x�Tg^@g(@gU@�M�7i����rArArArArAi��i�i����)ZassertWarnsRegex�DeprecationWarningr-�warnings�catch_warnings�filterwarnings�assertEqualr)r
rrr�testMiscVs&zGcdTest.testMiscN)r&r'r(rGrrrrr6Tsr6cCs|j|jfS)N)�	numerator�denominator)�rrrr�_componentsmsrKc@s�eZdZdd�Zdd�Zdd�Zedd��Zd	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;S)<�FractionTestcCs$|jt|�t|��|j||�dS)z4Asserts that both the types and values are the same.N)rF�type)r
Zexpected�actualrrr�assertTypedEqualssszFractionTest.assertTypedEqualscOsVy|||�Wn2|k
r@}z|j|t|��WYdd}~XnX|jd|j�dS)z@Asserts that callable(*args, **kwargs) raises exc_type(message).Nz
%s not raised)rF�strZfailr&)r
�exc_type�message�callable�args�kwargs�errr�assertRaisesMessagexs
"z FractionTest.assertRaisesMessagecCs�|jdtt���|jdttd���|jdtttdd����|jdttdd���|jd ttdd!���|jd"ttd#d$���|jd%ttdd���|jd&ttdd���|jd(ttd)���|jd*tttdd�d���|jd,ttdtd-d����|jd.tttdd�tdd����|jtdtdd�|jttd/�|jttdd�|jttdd�|jttdd�|jttddd�dS)0Nrr7r9����
r;r:r?��	�	�	�ic�qzFraction(12, 0)r<g�?y@z3/2yy�?)rr7)r9r7)r9rXrA)rAr7rArA)rAr7rA)r7r7���rb)r7rY)r9r;�m+?�R)rcr7lm+?�R)rXr?���)rdrZi����)r^r_y�?@)rFrKrrW�ZeroDivisionError�assertRaisesr)r
rrr�testInit�s&"
zFractionTest.testInitcCsv|jd
ttd���|jdttd���|jdttd	���|jtttd
��|jtttd��|jtttd��dS)NrZrYg@rr7g��L�33f�g�������?�nan�infz-inf)rZrY)rr7g�)rhri)rFrKrrf�
ValueErrorr
�
OverflowError)r
rrr�testInitFromFloat�szFractionTest.testInitFromFloatcCs�|jdtttd����|jdtttd����|jdtttd	����|jtttd
��|jtttd��|jtttd��|jtttd
��dS)Nr\r[z1.1r9��z3.5e-2rr7z.000e20rj�snanrkz-inf)r\r[)r9ro)rr7)rFrKrrrfrlrm)r
rrr�testInitFromDecimal�sz FractionTest.testInitFromDecimalcCs�|jd-ttd���|jd.ttd���|jd/ttd���|jd1ttd���|jd2ttd
���|jd3ttd���|jd5ttd
���|jd7ttd���|jd8ttd���|jd9ttd���|jd:ttd���|jd<ttd���|jd=ttd���|jd>ttd���|jtdtd�|jtdtd�|jtdtd�|jtdtd �|jtd!td"�|jtd#td$�|jtd%td&�|jtd'td(�|jtd)td*�|jtd+td,�dS)?NrZr7�5rXrYz3/2z 
  +3/2z-3/2  �
z    013/02 
  �z 3.2 z -3.2 z -3. z .6 �5z32.e-5�@Bz1E+06i0z-1.23e4rz .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: '.'�.)rZr7)rXrY)rXrY���)rxrY)rsrY)rtrZ��)ryrZrx)rxr7)rXrZ)r7ru)rvr7����)rzr7)rr7)rr7)rFrKrrWrerl)r
rrr�testFromString�sXzFractionTest.testFromStringcCs�tdd�}|jdd�|jd
t|��|jtt|dd�|jtt|dd�|jdt|��d	|_d|_|jdt|��|j	td	d�|�dS)
Nr9rXrYr;rHr<rI��)r9rX)r9rX)r}rY)
rrrFrKrf�AttributeError�setattrr3r4�assertNotEqual)r
rJrrr�
testImmutable�s
zFractionTest.testImmutablecCs*|jttjd�|jdttjd���d}|j|dfttj|���|jdttjd���|jdttjd���|jdttjd���|jdttjd
���|jtd�ttjd
���|jdttjd���|jdttjd���d}||}|jtdtj|�|jtdtj|�|jt	dtj|�dS) NrXy@r[r7l�{�C	rgg$@rZrYg@�l+?�Rg�J��-�Dr:��L�33f� g������	@g�z(cannot convert Infinity to integer ratioz#cannot convert NaN to integer ratioy@@)r[r7)rr7g�)r[r7���)r�rYg�)r�r7lm+?�R)r�r�)
rfrrrrFrKr
rWrmrl)r
Zbigintrkrjrrr�
testFromFloat�s0
zFractionTest.testFromFloatcCs|jttjd�|jtdd�tjd��|jtd�tjtd���|jtdd�tjtd���|jtdd	�tjtd
���|jtd�tjtd���|jdtdd�tjtddd
���|jtdtjtd��|jtdtjtd��|jtdtjtd��|jtdtjtd��dS)NrXy@r[r7rz-0rZz0.5i�z5e-3i�Z5e3�z0.�9z(cannot convert Infinity to integer ratiorkz-infz#cannot convert NaN to integer ratiorjrpy@@l�7�3M�e')	rfrrZfrom_decimalrFrrWrmrl)r
rrr�testFromDecimals(zFractionTest.testFromDecimalcCs�td�}|j|jd�tdd��|j|jd�tdd��|j|jd�tdd��|j|jd�tdd��|jtdd	�jd
�td��|jtdd	�jd�td
d��|jtd�jd�td��x"dD]}|jtdtd�j|�q�WdS)Nz3.1415926535897932i'icra�piM�j��ro�dr7�e�frz$max_denominator should be at least 1i����rA)rrA)rrFZlimit_denominatorrWrl)r
Zrpi�irrr�testLimitDenominator,s
z!FractionTest.testLimitDenominatorcCs�|jdtjtdd���|jdtjtdd���|jdtjtdd���|jdtjtdd���|jdtjtdd���|jdttdd���|jdttdd���|jdttdd���|jd ttd!d���|jd"ttd#d���|jd	t	tdd���|jd
t	tdd���|jdt
tdd���|jtt
td
dd��|j
d$t
ttd
dd�tddd����|jd%ttdd���dS)&Nr7r\r[rYrrZr;r9FTrXg�������?�2i��7g@�3�1yrAi����rbi����rAi����rAi����rAi����rAr�rbi�rAi����gUUUUUU�?y�������?)rOr,�truncrZfloorZceil�int�roundrF�boolr
rfrm�assertAlmostEqual�complex)r
rrr�testConversions:s"(zFractionTest.testConversionscCs�|jtd�ttd
�d��|jtd�ttd�d��|jtd�ttd�d��|jtdd�ttdd
�d��|jtdd�ttdd
�d��dS)Nro�rY�r��r7r[r;r��i8���ij���rbi8���i���rbrArbi�rbi��)rOrr�)r
rrr�	testRoundRs
zFractionTest.testRoundcCs<|jtdd�tdd�tdd��|jtdd�tdd�tdd��|jtdd�tdd�tdd��|jtdd�tdd�tdd��|jdtdd�tdd��|jdtdd�td��|jtdd�tdd�tdd��|jtdd�tdd�td��|jtdd�tdd�td��|jd
td�tdd��|jtdd�tdd�
�ttd�tdd��}|j|jd�|j|jd�tdd�d}|j|tdd��|j|jd�|j|jd�tdd�d}|j|tdd��|j|jd�|j|jd�tdd�d}|j|tdd��|j|jd�|j|jd�dS)Nr7rYr[rZrXr�r}r]r:r9��g@rrxlm+?�Rlm+?�Ri����rxrArArArArbrbrArb)	rFrrO�powr��real�imagrHrI)r
�z�prrr�testArithmeticYs4"""""  zFractionTest.testArithmeticcCs2|jtdd�tdd�d�|jdtdd�d�|jdtdd�d�|jtdd�dtdd��|jddtdd��|jddtdd��|jtdd�tdd�d�|jdtdd�d�|jdtdd�d�|jtdd�dtdd��|jddtdd��|jddtdd��|jtdd�tdd�d�|jd	tdd�d�|jdtdd�d �|jtdd�dtdd��|jd	dtdd��|jd!d"tdd��|jtdd�tdd�d�|jd	tdd�d�|jd#tdd�d$�|jtdd�dtdd��|jd
dtdd��|jd%d&tdd��|jdtdd�d�|jdtdd�d�|jddtdd��|jd'd(tdd��|jddtdd��|jtdd�tdd�d�|jd	tdd�d�|jtdd�dtdd��|jddtdd��|jtdd�tdd�d)�|jtdd�tdd�d�|jd	tdd�d�|jd*tdd�d+�|jddtdd��td,tdd��}|jd|j�|jd|j�|jtdd�dtd-d��|jddtdd��|jddtd.d��|jd/d0tdd��|jtt	jtdd�d1�dS)2Nr\r[r7g�������?g�?yr]g�������?g�������?g$@rr:r`gr�rYr}g@g�?y�������?y�?y�������?y�?i����g�������g�������y�������y�?y�������?y�?y�������?y�?y�������?y�?y�������?y�?y$@y�?lm+?�Rl�d�&O�!rby�������?y�?rArbrby�?y�?rb)
rOrr�r�r�rFr�rfrer)r
r�rrr�testMixedArithmeticvs^
z FractionTest.testMixedArithmeticcCs<|jttjtdd�td��|jttjtd�tdd��dS)NrXr\z	3.1415926)rfrr�addrr)r
rrr�testMixingWithDecimal�s

z"FractionTest.testMixingWithDecimalcCs�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�dS)Nr7rYrX)�
assertTruer�assertFalse)r
rrr�testComparisons�szFractionTest.testComparisonscCs�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�dS)Nr7rYrXr}r9)r�rr+r�)r
rrr�testComparisonsDummyRational�s8z)FractionTest.testComparisonsDummyRationalcCs�td�}tdd�}|j||k�|j||kp2||k�|j||k�|j||koV||k�|j||k�|j||kpz||k�|j||k�|j||ko�||k�dS)Ng�?g@r7rXgUUUUUU�?)rrr�r�)r
�x�yrrr�testComparisonsDummyFloat�s
z&FractionTest.testComparisonsDummyFloatcCs4|jdtdd�k�|jdtdd�k�|jtdd�dk�|jtdd�dk�|jtdd�dk�|jtdd�dk�|jdtdd�k�|jdtdd�k�|jtd	�tdd�k�|jtd
�tdd�k�|jtd
�tdd�k�|jtdd�td	�k�|jtdd�td
�k�|jtdd�td
�k�dS)NrYrZr}rXr7g333333�?g�������?g�?rkz-infrr[rjr9�r<��Yrxi����)r�rr�r
)r
rrr�
testMixedLess�szFractionTest.testMixedLesscCs4|jdtdd�k�|jdtdd�k�|jtdd�dk�|jtdd�dk�|jdtdd�k�|jdtdd�k�|jtdd�dk�|jtdd�dk�|jtd	�tdd�k�|jtd
�tdd�k�|jtd
�tdd�k�|jtdd�td	�k�|jtdd�td
�k�|jtdd�td
�k�dS)Ng�?r7rYg333333�?g�������?r}rXrZrkz-infrr[rjr9r�r<r�r�rxi����)r�rr�r
)r
rrr�testMixedLessEqualszFractionTest.testMixedLessEqualcCs�|jtd�td�k�|jdtttjd�d��k�|jdttjd�d�k�|jdttjd�d�k�|jdttjd�d�k�|jdttjd�d�k�dS)Nr[r:g�J��-�Dr7lm+?�Rlm+?�R)r�rr
r,r�r�)r
rrr�testBigFloatComparisonss z$FractionTest.testBigFloatComparisonscCs|jtd�td	�k�|jttjtd
�td��|jttjtd�td
��tdd�}tdd�}tdd�}|j||k�|j||k�|j||k�|j||k�x\tj	tjtjtj
fD]D}|jt|||�|jt|||�|jt|||�|jt|||�q�WdS)Nr[r:rXr�g�?gg�������?lm+?�Rlm+?�Rlm+?�Rlm+?�Rlm+?�Rlm+?�R)r�rr�rfrrr!rr�rr)r
r�r��wrrrr�testBigComplexComparisonss


z&FractionTest.testBigComplexComparisonscCs|jdtdd�k�|jdtdd�k�|jtdd�dk�|jtdd�dk�|jdtdd�k�|jdtdd�k�|jtdd�dk�|jtdd�dk�|jtdd�td	�k�|jtd	�tdd
�k�|jtdd�td�k�|jtd�tdd�k�dS)
Ng�?r7rYg333333�?g�������?r}rXrZrjr9rkz-inf)r�rr�r
)r
rrr�testMixedEqual-szFractionTest.testMixedEqualcCsp|jdttdd���|jdttd���|jdttdd
���|jd
ttdd���|jdttdd���dS)NzFraction(7, 3)r9rXz Fraction(6283185307, 2000000000)z3.1415926535z#Fraction(-1, 100000000000000000000)r7r[�z7/3r�l F�x:^Vl���� F�x:^V)rF�reprrrP)r
rrr�testStringification;sz FractionTest.testStringificationcCs�tjj}tjj}|jtd�ttdd���|jtdd�ttdd���|jttd��ttd	���|j|ttd|���|jttd
��td�j	��dS)Ng@rZrYr[�2r:r7lm+?�Rlm+?�RrArA)
�sys�	hash_info�modulusrkrF�hashrr�r
�__hash__)r
ZhmodZhinfrrr�testHashDs zFractionTest.testHashc	Cs�td�}d|dddddf\}}}}}}}xVt||�tdd	�kr~|}|||d}}|||d}}|||}||7}q*W|jtj|�dS)
NrXrr7�r[r]r�� iʚ;)r�absr�r,Zpi)	r
Zthree�lasts�t�s�nZna�dZdarrr�testApproximatePiOs zFractionTest.testApproximatePicCs�td�}ddtd�dddf\}}}}}}xZt||�tdd�kr�|}|d7}|||d9}|||9}|d9}||||7}q*W|jtjd�|�dS)Nr7rr[r]rYiʚ;rA)rr�r�r,Zcos)r
r�r�r�r�Zfactr.Zsignrrr�testApproximateCos1\s z FractionTest.testApproximateCos1cCs�tdd�}tdd�}|j|tt|���|jt|�tt|���|jt|�tt|���|jt|�tt|���|jt|�tt|���|j	|t|��|j	|t|��dS)Nrsr9)
rr5rFrr�idrrr�rO)r
rJZdrrrr�test_copy_deepcopy_picklejs

z&FractionTest.test_copy_deepcopy_picklecCs tdd�}|jtt|dd�dS)Nrsr9�ar[)rrfr~r)r
rJrrr�
test_slotsus
zFractionTest.test_slotsN)!r&r'r(rOrWrgrrnrqr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrLqs:

5: 
	
rL�__main__)r)�decimalrZtest.supportrr,rrr1r�ZunittestrCrr�picklerrr2rr-�objectrr+r5ZTestCaser6rKrLr&�mainrrrr�<module>s2