403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_fractions.cpython-313.opt-1.pyc
�

��i����SrSSKrSSKJr SSKJrJr SSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKJrJr SSKrSSKJrJr \
R*r\R.R1\5=(d \R4r\R.R9\SS5r"S	S
\5r"SS\5r "S
S\
R*5r!Sr"Sr#"SS5r$"SS\$5r%\RLRO\%5 "SS\$5r(\RRRO\(5 "SS5r*\RVRO\*5 "SS5r,\RLRO\,5 "SS5r-\RRRO\-5 "SS5r.\RRRO\.5 "SS \.\/5r0"S!S"\Rb5r2\3S#:Xa\Rh"5 gg)$zTests for Lib/fractions.py.�N)�Decimal)�requires_IEEE_754�adjust_int_max_str_digits)�copy�deepcopy)�dumps�loads�mathdatazformatfloat_testcases.txtc�R�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
\
rSrg
)�
DummyFloat�z8Dummy float class for testing comparisons with Fractionsc�P�[U[5(d[S5eXlg)Nz-DummyFloat can only be initialized from float)�
isinstance�float�	TypeError�value��selfrs  �(C:\Python313\\Lib\test\test_fractions.py�__init__�DummyFloat.__init__s ���%��'�'��K�L�L��
�c��[U[R5(a&U"[R	UR
5U5$[U[5(aU"UR
UR
5$[$�N)r�numbers�Rational�F�
from_floatrr�NotImplemented)r�other�ops   r�_richcmp�DummyFloat._richcmp sW���e�W�-�-�.�.��a�l�l�4�:�:�.��6�6�
��z�
*�
*��d�j�j�%�+�+�.�.�!�!rc�B�URU[R5$r)r"�operator�eq�rr s  r�__eq__�DummyFloat.__eq__(���D�M�M�%����$E�Erc�B�URU[R5$r)r"r%�ler's  r�__le__�DummyFloat.__le__)r*rc�B�URU[R5$r)r"r%�ltr's  r�__lt__�DummyFloat.__lt__*r*rc�B�URU[R5$r)r"r%�ger's  r�__ge__�DummyFloat.__ge__+r*rc�B�URU[R5$r)r"r%�gtr's  r�__gt__�DummyFloat.__gt__,r*rc��gr��rs r�	__float__�DummyFloat.__float__/��rc��grr<r's  r�__sub__�DummyFloat.__sub__3r@r�rN)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rr"r(r-r1r5r9r>rB�__rsub__�__static_attributes__r<rrrrs2��B��
"�F�E�E�E�E�H�F��Hrrc�B�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�
DummyRational�8zATest comparison of Fraction with a naive rational implementation.c�T�[R"X5nX-UlX#-Ulgr)�math�gcd�num�den)rrRrS�gs    rr�DummyRational.__init__;s"���H�H�S����8����8��rc��[U[R5(a9URUR:H=(a UR
UR:H$[$r)r�	fractions�FractionrR�
_numeratorrS�_denominatorrr's  rr(�DummyRational.__eq__@sK���e�Y�/�/�0�0��H�H�� 0� 0�0�3��H�H�� 2� 2�2�
4�"�!rc�h�URUR-URUR-:$r�rRrZrSrYr's  rr1�DummyRational.__lt__G�+���x�x�%�,�,�,�t�x�x�%�:J�:J�/J�J�Krc�h�URUR-URUR-:�$rr]r's  rr9�DummyRational.__gt__Jr_rc�h�URUR-URUR-:*$rr]r's  rr-�DummyRational.__le__M�+���x�x�%�,�,�,����5�;K�;K�0K�K�Lrc�h�URUR-URUR-:�$rr]r's  rr5�DummyRational.__ge__Prdrc��grr<r=s rr>�DummyRational.__float__Ur@r)rSrRN)
rErFrGrHrIrr(r1r9r-r5r>rKr<rrrMrM8s,��K��
"�L�L�M�M�
8rrMc��\rSrSrSrSrg)�
DummyFraction�Xz6Dummy Fraction subclass for copy and deepcopy testing.r<N)rErFrGrHrIrKr<rrrjrjXs��@rrjc�2�URUR4$r��	numerator�denominator)�rs r�_componentsrq\s��
�K�K����'�'rc��[U5[U5:H=(a! X:H=(d [R"X5$r)�typerP�isclose)�a�bs  r�typed_approx_eqrw_s*����7�d�1�g��@�1�6�#?�T�\�\�!�-?�@rc�`�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�Symbolic�bz�Simple non-numeric class for testing mixed arithmetic.
It is not Integral, Rational, Real or Complex, and cannot be converted
to int, float or complex. but it supports some arithmetic operations.
c��XlgrrDrs  rr�Symbolic.__init__gs���
rc�d�[U[5(a[$URUSU35$�Nz * �rrr�	__class__r's  r�__mul__�Symbolic.__mul__i�/���e�Q���!�!��~�~���c�%��1�2�2rc�.�URUSU35$r~�r�r's  r�__rmul__�Symbolic.__rmul__m����~�~���s�4�&�1�2�2rc�d�[U[5(a[$URUSU35$�Nz / rr's  r�__truediv__�Symbolic.__truediv__or�rc�.�URUSU35$r�r�r's  r�__rtruediv__�Symbolic.__rtruediv__sr�rc�d�[U[5(a[$URUSU35$�Nz % rr's  r�__mod__�Symbolic.__mod__ur�rc�.�URUSU35$r�r�r's  r�__rmod__�Symbolic.__rmod__yr�rc�d�[U[5(a[$URUSU35$�Nz ** rr's  r�__pow__�Symbolic.__pow__{s/���e�Q���!�!��~�~���d�5�'�2�3�3rc�.�URUSU35$r�r�r's  r�__rpow__�Symbolic.__rpow__s���~�~���t�D�6�2�3�3rc�t�URUR:wa[$URUR:H$r)r�rrr's  rr(�Symbolic.__eq__�s+���?�?�d�n�n�,�!�!��z�z�U�[�[�(�(rc��UR$rrDr=s r�__str__�Symbolic.__str__�s���*�*��rc�P�URRSUR<S3$)N�(�))r�rErr=s r�__repr__�Symbolic.__repr__�s$���.�.�)�)�*�!�D�J�J�>��;�;rrDN)rErFrGrHrIrr�r�r�r�r�r�r�r�r(r�r�rKr<rrryrybsC����3�3�3�3�3�3�4�4�)��<rryc��\rSrSrSrg)�SymbolicReal�r<N�rErFrGrHrKr<rrr�r�����rr�c��\rSrSrSrg)�SymbolicComplex�r<Nr�r<rrr�r��r�rr�c�Z�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrg)�Rat�z3Simple Rational class for testing mixed arithmetic.c��XlX lgrrm)r�n�ds   rr�Rat.__init__�s
�����rc��[U[5(a[$URURUR-UR
UR
-5$r�rrrr�rnror's  rr��Rat.__mul__�sK���e�Q���!�!��~�~�d�n�n�u���>�"�.�.��1B�1B�B�D�	Drc��URURUR-URUR-5$r�r�rnror's  rr��Rat.__rmul__�s8���~�~�e�o�o����>�#�/�/�$�2B�2B�B�D�	Drc��[U[5(a[$URURUR
-UR
UR-5$rr�r's  rr��Rat.__truediv__�sK���e�Q���!�!��~�~�d�n�n�u�/@�/@�@�"�.�.����@�B�	Brc��URURUR-URUR-5$rr�r's  rr��Rat.__rtruediv__�s8���~�~�e�o�o��0@�0@�@�#�/�/�$�.�.�@�B�	Brc���[U[5(a[$URUR-nURURUR-U-U5$r)rrrrornr��rr r�s   rr��Rat.__mod__�sN���e�Q���!�!����u���.���~�~�d�n�n�u�/@�/@�@�1�D�a�H�Hrc��URUR-nURURUR-U-U5$r)rornr�r�s   rr��Rat.__rmod__�s;��������.���~�~�e�o�o��0@�0@�@�1�D�a�H�Hrc��[U[5(a[$URURU-UR
U-5$rr�r's  rr��Rat.__pow__�s?���e�Q���!�!��~�~�d�n�n��5�"�.�.�%�7�9�	9rc�4�URUR-$rrmr=s rr>�
Rat.__float__�s���~�~�� 0� 0�0�0rc���URUR:wa[$[URUR5=(a  [URUR5$r)r�rrwrnror's  rr(�
Rat.__eq__�sL���>�>�U�_�_�,�!�!��������@�E��� 0� 0�%�2C�2C�D�	Frc�l�URRSUR<SUR<S3$�Nr�z, r�)r�rErnror=s rr��Rat.__repr__�s3���.�.�)�)�*�!�D�N�N�+=�R��@P�@P�?S�ST�U�Ur)rornN)rErFrGrHrIrr�r�r�r�r�r�r�r>r(r�rKr<rrr�r��sD��=��D�
D�B�
B�I�
D�9�
1�F�
Vrr�c�`�\rSrSrSr\"S54SjrSrSrSr	Sr
S	rS
rSr
SrS
rg)�Root��z/Simple Real class for testing mixed arithmetic.�c��XlX lgr��base�degree)r�vr�s   rr�
Root.__init__�s���	��rc��[U[5(a[$URURXR
--UR
5$r�rrrr�r�r�r's  rr��Root.__mul__��:���e�Q���!�!��~�~�d�i�i�%���*<�<�d�k�k�J�Jrc�l�URXR-UR-UR5$r�r�r�r�r's  rr��
Root.__rmul__��'���~�~�e�[�[�0�4�9�9�<�d�k�k�J�Jrc��[U[5(a[$URURXR
--UR
5$rr�r's  rr��Root.__truediv__�r�rc�l�URXR-UR-UR5$rr�r's  rr��Root.__rtruediv__�r�rc��[U[5(a[$URURUR
U-5$rr�r's  rr��Root.__pow__�s3���e�Q���!�!��~�~�d�i�i����u�)<�=�=rc�^�[UR5S[UR5--$�N�)rr�r�r=s rr>�Root.__float__�s$���T�Y�Y��A��d�k�k�(:�$:�;�;rc���URUR:wa[$[URUR5=(a  [URUR5$r)r�rrwr�r�r's  rr(�Root.__eq__�sD���>�>�U�_�_�,�!�!��t�y�y�%�*�*�5�d�/�$�+�+�W\�Wc�Wc�:d�drc�l�URRSUR<SUR<S3$r�)r�rEr�r�r=s rr��
Root.__repr__�s.���.�.�)�)�*�!�D�I�I�=��4�;�;�/��K�Krr�N)rErFrGrHrIrrr�r�r�r�r�r>r(r�rKr<rrr�r��s?��9��a�D��K�K�K�K�>�<�e�Lrr�c�H�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
g)
�Polar��z2Simple Complex class for testing mixed arithmetic.c��XlX lgr)rp�phi)rrpr�s   rr�Polar.__init__�s�����rc��[U[5(a[$URURU-UR
5$r�rrrr�rpr�r's  rr��
Polar.__mul__��2���e�Q���!�!��~�~�d�f�f�u�n�d�h�h�7�7rc�R�URXR-UR5$r�r�rpr�r's  rr��Polar.__rmul__�s���~�~�e�f�f�n�d�h�h�7�7rc��[U[5(a[$URURU-UR
5$rr�r's  rr��Polar.__truediv__�r�rc�T�URXR-UR*5$rr�r's  rr��Polar.__rtruediv__�s���~�~�e�f�f�n�t�x�x�i�8�8rc��[U[5(a[$URURU-UR
U-5$rr�r's  rr��
Polar.__pow__�s7���e�Q���!�!��~�~�d�f�f��o�t�x�x�%�/?�@�@rc���URUR:wa[$[URUR5=(a  [URUR5$r)r�rrwrpr�r's  rr(�Polar.__eq__�sA���>�>�U�_�_�,�!�!��t�v�v�u�w�w�/�X�O�D�H�H�e�i�i�4X�Xrc�l�URRSUR<SUR<S3$r�)r�rErpr�r=s rr��Polar.__repr__�s.���.�.�)�)�*�!�D�F�F�:�R����|�1�E�Er)r�rpN)rErFrGrHrIrr�r�r�r�r�r(r�rKr<rrr�r��s0��<��8�8�8�9�A�Y�Frr�c�N�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Srg
)�Rect�z8Other simple Complex class for testing mixed arithmetic.c��XlX lgr��x�y�rrrs   rr�
Rect.__init__s�����rc��[U[5(a[$URURU-UR
U-5$r�rrrr�rrr's  rr��Rect.__mul__�6���e�Q���!�!��~�~�d�f�f�u�n�d�f�f�u�n�=�=rc�V�URXR-XR-5$r)r�rrr's  rr��
Rect.__rmul__s���~�~�e�f�f�n�e�f�f�n�=�=rc��[U[5(a[$URURU-UR
U-5$rrr's  rr��Rect.__truediv__	rrc���URUR-URUR--nURXRU--XRU--5$r)rrr�)rr rps   rr��Rect.__rtruediv__
sK���F�F�T�V�V�O�d�f�f�t�v�v�o�-���~�~�e�v�v��z�2�E�V�V�a�Z�4H�I�Irc�t�[XR-[R"U5UR-5$r)r�rrP�logrr's  rr��
Rect.__rpow__s&���U�f�f�_�d�h�h�u�o����&>�?�?rc�B�[URUR5$r)�complexrrr=s r�__complex__�Rect.__complex__s���t�v�v�t�v�v�&�&rc���URUR:wa[$[URUR5=(a  [URUR5$r)r�rrwrrr's  rr(�Rect.__eq__sA���>�>�U�_�_�,�!�!��t�v�v�u�w�w�/�T�O�D�F�F�E�G�G�4T�Trc�l�URRSUR<SUR<S3$r�)r�rErrr=s rr��
Rect.__repr__s.���.�.�)�)�*�!�D�F�F�:�R����z��C�Crr
N)rErFrGrHrIrr�r�r�r�r�rr(r�rKr<rrrr�s6��B��>�>�>�J�@�'�U�Drrc��\rSrSrSrg)�RectComplexir<Nr�r<rrr%r%r�rr%c�N�\rSrSrSrSrSrSr\S5r	Sr
SrS	rS
r
SrSrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"S r#S!r$S"r%S#r&S$r'S%r(S&r)S'r*S(r+S)r,S*r-S+r.S,r/S-r0S.r1S/r2S0r3\S15r4S2r5S3r6g4)5�FractionTestic�n�UR[U5[U55 URX5 g)z4Asserts that both the types and values are the same.N)�assertEqualrs�r�expected�actuals   r�assertTypedEquals�FractionTest.assertTypedEquals!s(������h���f��6�����*rc	��URX5 UR[[[U55[[[U555 g)zBAsserts that both the types and values in the tuples are the same.N)�assertTupleEqual�assertListEqual�list�maprsr*s   r�assertTypedTupleEquals�#FractionTest.assertTypedTupleEquals&s8�����h�/����T�#�d�H�"5�6��S��v�=N�8O�Prc��U"U0UD6 URSUR-5 g!Ua%nURU[U55 SnAgSnAff=f)z@Asserts that callable(*args, **kwargs) raises exc_type(message).z
%s not raisedN)�failrEr)�str)r�exc_type�message�callable�args�kwargs�es       r�assertRaisesMessage� FractionTest.assertRaisesMessage+sV��	;��d�%�f�%�
�I�I�o��(9�(9�9�:���	.����W�c�!�f�-�-��	.�s�)�A�A�Ac�(�URS[[555 URS[[S555 URS[[[SS5555 URS[[SS555 URS[[SS555 URS	[[S
S
555 URS[[SS
555 URS[[SS555 URS[[S555 URS[[[SS5S555 URS[[S[SS5555 URS[[[SS5[SS5555 UR[S[SS5 UR[[S5 UR[[S S5 UR[[SS!5 UR[[SS"5 UR[[SSS5 g)#N�rr�)�r�rC�rC�rE)���r�rFr�)r�r����)r�r���
)rC�rJ)�m+?�Rr�rK)rE�M�)���rHr�����	)i�	i�	��c�qzFraction(12, 0)�ry�?@�3/2y��?)r)rqrr?�ZeroDivisionError�assertRaisesrr=s r�testInit�FractionTest.testInit5s��������Q�S�!1�2������Q�q�T�!2�3������Q�q��A�w�Z�!8�9�����+�a��A�h�"7�8�����+�a��2�h�"7�8������Q�r�2�Y�!7�8������Q�q�"�X�!6�7�����+�a��2�h�"7�8�����k�!�F�)�&<�=�����+�a��!�Q���n�"=�>�����+�a��1�S�!�9�o�">�?�����{�1�Q�r�1�X�q��c�{�3K�'L�M�� � �!2�4E�!"�B��	+����)�Q��1����)�Q��q�1����)�Q��2�.����)�Q��2�.����)�Q��1�a�0rc��URS[[S555 URS[[S555 URS[[S555 UR[[[S55 UR[[[S55 UR[[[S	55 g)
N)rHr��@rB��)��L�33fl皙�����?�nan�inf�-inf)r)rqrrX�
ValueErrorr�
OverflowErrorr=s r�testInitFromFloat�FractionTest.testInitFromFloatNs��������Q�s�V�!4�5������Q�t�W�!5�6����>�$�Q�s�V�,�	.�	
���*�a��u��6����-��E�%�L�9����-��E�&�M�:rc
�2�URS[[[S5555 URS[[[S5555 URS[[[S5555 UR	[
[[S55 UR	[
[[S55 UR	[[[S	55 UR	[[[S
55 g)N�rMrI�1.1)rC��z3.5e-2rBz.000e20r`�snanrarb)r)rqrrrXrcrdr=s r�testInitFromDecimal� FractionTest.testInitFromDecimalYs�������$�Q�w�u�~�%6�7�	9�����$�Q�w�x�'8�%9�:�	<�����$�Q�w�y�'9�%:�;�	=�	
���*�a����8����*�a����9����-��G�E�N�;����-��G�F�O�<rc�
^�TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S	555 TRS
[[S555 TRS[[S
555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS[[S555 TRS [[S!555 TRS"[[S#555 TRS$[[S%555 TRS&[[S'555 TRS&[[S(555 TR[S)[S*5 U4S+jnU"S,5 U"S-5 U"S.5 U"S/5 U"S05 U"S15 U"S25 U"S35 U"S45 U"S55 U"S65 U"S75 U"S85 U"S95 U"S:5 U"S;5 U"S<5 U"S=5 U"S>5 U"S?5 U"S@5 U"SA5 U"SB5 U"SC5 U"SD5 U"SE5 U"SF5 U"SG5 U"SH5 U"SI5 U"SJ5 U"SK5 U"SL5 U"SM5 U"SN5 U"SO5 U"SP5 U"SQ5 U"SR5 U"SS5 U"ST5 U"SU5 U"SV5 U"SW5 U"SX5 U"SY5 U"SZ5 U"S[5 U"S\5 U"S]5 U"S^5 U"S_5 S`nU"U5 U"SaU-5 U"SbU-5 U"SIU-5 U"ScU-5 U"SdU-5 g)eN)rHr��5�005)rEr�rUz3 / 2z 
  +3/2)���r�z-3/2  )�
r�z    0013/002 
  )�rHz 3.2 z003.2)i�rHz -3.2 )rqr�z -3. )rErHz .6 )r�i5z32.e-5)i@Br�z1E+06)i���r�z-1.23e4rBz .0e+0	z-0.000e0)�{r��1_2_3)�)�kz1_2_3/3_2_1)�i�z3.14_15)rxl@�9�Hz3.14_15e-1_0)�e�dz1.01z1.0_1zFraction(3, 0)z3/0c�Z>�S[U5-nTR[U[U5 g)NzInvalid literal for Fraction: )�reprr?rcr)�s�msgrs  �r�
check_invalid�2FractionTest.testFromString.<locals>.check_invalid�s%���2�T�!�W�<�C��$�$�Z��a��;rz3/�/2z3/+2z3/-2z+ 3/2z- 3/2�3a2z3/7.2z3.2/7z3 .2z3. 2z3.2 e1z3.2e 1z3.+2z3.-2�0x10z0x10/1z1/0x10z0x10.z0x10.1z1.0x10z1.0e0x10�³u³/2u3/²u³.2u3.²u3.2e²�¼�.�_�_1�1__2z/_z1_/z_1/z1__2/z1/_z1/_1z1/1__2z1._111z1.1__1z1.1e+_1z	1.1e+1__1z123.ddz123.5_ddzdd.5�7_ddz1/ddz1/123_dd�789edd�789e2_dd�399999999999999999999999999999999999999999999999999_�1/�1.z1.1+e�1.1e)r)rqrr?rW)rr�vals`  r�testFromString�FractionTest.testFromStringfsP��������Q�s�V�!4�5������Q�u�X�!6�7������Q�u�X�!6�7������Q�w�Z�!8�9������Q�{�^�!<�=�����+�a��k�":�;�����+�a�0C�.D�"E�F�����+�a��j�"9�:�����+�a��j�"9�:�����;�q��{�#;�<�����+�a��j�"9�:������Q�v�Y�!7�8�����K��(��$<�=�����{�1�W�:�'>�?�����k�!�I�,�&?�@������Q�z�]�!;�<������Q�z�]�!;�<�����;�q��z�#:�;�����K��-�0@�$A�B�����{�1�Y�<�'@�A����)�;�q��7H�+I�J�����[��6��%;�<�����[��7��%<�=�� � ��/�
�u�	�	<�	�d���d���f���f���g���g���e���g���g���f���f���h���h���f���f���f���h���h���g���h���h���j�!��d���f���f���f���f���h���d���c���c���d���f���d���e���e���g���e���f���h���h���h���i� ��k�"��h���j�!��f���f���f���j�!��h���j�!����c���d�S�j�!��d�S�j�!��c�C�i� ��g��m�$��f�s�l�#rc�@�Sn[U5 SnSU-nSU-S-
S-nURUS4[[U555 UR	[
U[US-5 URUS4[[US-555 UR	[
U[US	-5 URSU4[[S
U-555 UR	[
U[SU-5 URSUS--S-
S-SU-4[[SU-555 UR	[
U[S
U-5 URUSU-4[[SU-555 UR	[
U[SU-5 UR	[
U[SU-5 URS[[SSU--555 UR	[
U[SSUS---5 SSS5 g!,(df   g=f)N�zExceeds the limit�1rIr�rPr�r�z1/2r�z1/1r�rir�z.1z1.1e1rhr��0)rr)rqr�assertRaisesRegexrc)r�	maxdigitsr~r�rRs     r�test_limit_int�FractionTest.test_limit_int�s����	�
&�y�
1�%�C��	�/�C��y�=�1�$�q�(�C����c�1�X�{�1�S�6�':�;��"�"�:�s�A�s�S�y�A����c�1�X�{�1�S�4�Z�=�'A�B��"�"�:�s�A�s�U�{�C����a��X�{�1�T�C�Z�=�'A�B��"�"�:�s�A�u�s�{�C����r�I�a�K�0�1�4�q�8�"�i�-�H�(��4�#�:��7�
9��"�"�:�s�A�u�s�{�C����c�2�y�=�1�;�q��s��|�3L�M��"�"�:�s�A�t�c�z�B��"�"�:�s�A�w��}�E����X�{�1�V�c�I�o�5M�3N�'O�P��"�"�:�s�A�v��y�QR�{�@S�7S�T�#2�
1�
1�s�G8H�
Hc��[SS5nURSS5 URS[U55 UR	[
[USS5 UR	[
[USS	5 URS[U55 S
UlSUlURS[U55 UR[S
S5U5 g)NrCrEr�rJrDrnrTro��)r�r�)
rrr)rqrX�AttributeError�setattrrYrZ�assertNotEqual�rrps  r�
testImmutable�FractionTest.testImmutable�s���
�a��G��	�
�
�1�b�������Q��0����.�'�1�k�2�F����.�'�1�m�Q�G������Q��0������������Q��0����A�a��G�Q�'rc��UR[[RS5 UR	S[[RS555 SnUR	US4[[RU555 UR	S[[RS555 UR	S[[RS555 UR	S	[[RS
555 UR	S[[RS555 UR	[
S
5[
[RS555 UR	S[[RS555 UR	S[
[RS555 SnX"-
nUR[S[RU5 UR[S[RU*5 UR[S[RU5 g)N�@@)rIr�rIl�{�C	r�rBr]�$@)���r�g�)ll+?�Rr��J��-�DrK)r^l g������	@g��(cannot convert Infinity to integer ratio�#cannot convert NaN to integer ratio)
rXrrrr)rqrr?rdrc)r�bigintrar`s    r�
testFromFloat�FractionTest.testFromFloat�s������)�Q�\�\�4�8�����+�a�l�l�2�.>�"?�@�$�����&�!��k�!�,�,�v�2F�&G�H������Q�\�\�$�-?�!@�A�����+�a�l�l�4�.@�"A�B�����+�a�l�l�4�.@�"A�B����5�$�Q�\�\�$�%7�8�	:�����v���a�l�l�4�.@�(A�B����=�$�Q�\�\�#�%6�7�	9�����e�A�L�L��$5�6�7����i��� � ��E�
�L�L�#�	�	
� � ��E�
�L�L�3�$�	 �	
� � ��=�
�L�L�#�	rc�V�UR[[RS5 UR	[SS5[RS55 UR	[S5[R[S555 UR	[SS5[R[S555 UR	[SS5[R[S	555 UR	[S
5[R[S555 UR	S[SS5-
[R[S
555 UR
[S[R[S55 UR
[S[R[S55 UR
[S[R[S55 UR
[S[R[S55 g)Nr�rIr�r�-0rHz0.5��z5e-3r��5e3l�7�3M�e'z 0.999999999999999999999999999999r�rarbr�r`rk)	rXrr�from_decimalr)rr?rdrcr=s r�testFromDecimal�FractionTest.testFromDecimalsx�����)�Q�^�^�T�:�����2�q��1�>�>�"�#5�6�����1��q�~�~�g�d�m�<�=�����1�b��1�>�>�'�%�.�#A�B�����1�d��Q�^�^�G�F�O�%D�E�����4��!�.�.����"@�A�����Q�q�&�\�)������(@�A�	C�	
� � ��E�
�N�N�G�E�N�	,�	
� � ��E�
�N�N�G�F�O�	-�	
� � ��=�
�N�N�G�E�N�	,�	
� � ��=�
�N�N�G�F�O�	-rc�8�UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 UR[SS5R55 g)Nr�rFr�rG)�
assertTruer�
is_integer�assertFalser=s r�test_is_integer�FractionTest.test_is_integer's������!�Q��*�*�,�-�����"�a��+�+�-�.�����!�R��+�+�-�.�����!�Q��*�*�,�-�����"�a��+�+�-�.�����!�R��+�+�-�.�����1�a��+�+�-�.�����2�q��,�,�.�/�����1�b��,�,�.�/�����2�r��-�-�/�0rc�T�UR[SS5R5S5 UR[SS5R5S5 UR[SS5R5S5 UR[SS5R5S5 g)	Nr�r�)r�rE���)rGrE���rrB)r)r�as_integer_ratior=s r�test_as_integer_ratio�"FractionTest.test_as_integer_ratio4s~������1�a��1�1�3�V�<�����2�q��2�2�4�g�>�����1�b��2�2�4�g�>�����1�a��1�1�3�V�<rc��[S5nURURS5[SS55 URURS5*[SS55 URURS5[SS55 URURS5[SS55 UR[S	S
5RS5[S55 UR[S	S
5RS
5[SS
55 UR[S5RS5[S55 SH.nUR[S[S5RU5 M0 g)Nz3.1415926535897932i'rRrSi�����piM�j��rjrzr�ry�fr)rrFz$max_denominator should be at least 1)rr)�limit_denominatorr?rc)r�rpi�is   r�testLimitDenominator�!FractionTest.testLimitDenominator:s0���$�%������.�.�u�5�q��c�{�C����#�/�/��6�6��$���E�����.�.�s�3�Q�s�C�[�A�����.�.�s�3�Q�s�C�[�A�����3���6�6�s�;�Q�q�T�B�����3���6�6�s�;�Q�s�C�[�I�����1��/�/��6��!��=��A��$�$��B��!��&�&��
+�rc�4�URS[R"[SS555 URS[R"[SS555 URS[R"[SS555 URS[R
"[SS555 URS[R
"[SS555 URS[
[SS555 URS[[SS555 URS[[S	S555 URS[[S
S555 URS[[SS555 URS[[SS555 URS
[[SS555 URS[[SS555 UR[[[
S55 URS[[[
S5[
S5555 URS[[SS555 g)NrFi����rIr�rMrGrOrr������FTrEr�r_��22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222227gUUUUUU�?��33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331��������?)r-rP�truncr�floor�ceil�int�roundr)�boolrrXrd�assertAlmostEqualrr=s r�testConversions�FractionTest.testConversionsHs������r�4�:�:�a��R�j�#9�:����q�$�*�*�Q�r�2�Y�"7�8����r�4�:�:�a��R�j�#9�:����r�4�9�9�Q�s�B�Z�#8�9����r�4�9�9�Q�s�B�Z�#8�9����r�3�q��b�z�?�3����q�%��"�b�	�"2�3����q�%��"�b�	�"2�3����r�5��3���#4�5����r�5��2�r��#3�4������Q�q�!�W�
�.�����t�A�a��G�}�-����s�E�!�A�r�(�O�4�	
���-���K�0@�A����u�$�Q�s�;�'7��[�9I�%J�K�	M�	
���v�w�q��2�w�'7�8rc���[SS5nURU[R5 UR	[U5S5 UR	[
[U55[
5 g)NrEr�r�)r�assertIsInstance�typing�SupportsIntr)r�rs)r�fs  r�testSupportsInt�FractionTest.testSupportsInt`sO��
�a��G�����a��!3�!3�4�����Q���#�����c�!�f��s�+rc�^�"U4SjS[5m[T"S5T"S55nURURT5 URURT5 URU[
R5 UR[U5S5 UR[[U55[5 g)Nc�X>�\rSrSrSr\S5r\U4Sj5rU4SjrU4Sjr	Sr
g)	�:FractionTest.testIntGuaranteesIntReturn.<locals>.CustomIntilz�
Subclass of int with just enough machinery to convince the Fraction
constructor to produce something with CustomInt numerator and
denominator.
c��U$rr<r=s rrn�DFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.numeratorss���rc�>�T"S5$r�r<)r�	CustomInts �rro�FFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.denominatorws
��� ��|�#rc�>>�T"[U5[U5-5$r�r��rr r�s  �rr��BFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__mul__{s��� ��T��S��Z�!7�8�8rc�>>�T"[U5[U5-5$rr�r�s  �r�__floordiv__�GFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__floordiv__~s��� ��T��c�%�j�!8�9�9rr<N)rErFrGrHrI�propertyrnror�r�rK)r�s�rr�r�ls?���
��
��
��
$��
$�
9�
:�
:rr�rrrHr�)	r�rr�rnror�r�r)rs)rr�r�s  @r�testIntGuaranteesIntReturn�'FractionTest.testIntGuaranteesIntReturngs����
	:��	:�*
�i��m�Y�q�\�*�����a�k�k�9�5����a�m�m�Y�7����a��!3�!3�4�����Q���#�����c�!�f��s�+rc�l�[R"SS55n[RR	U5 U"S5n[U5nUR
URU5 UR
[U5S5 U"S5n[U5nUR
[U5S5 g)Nc�>�\rSrSrSrSrSr\S5rSr	\	r
Srg)	�=FractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValuei�r�c��XlgrrDrs  rr�FFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__init__�s��"�
rc�,�[UR5$r)r�rr=s r�__bool__�FFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__bool__�s���D�J�J�'�'rc��U$rr<r=s rrn�GFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.numerator�s	���rc��[S5e)Nz&Avoid comparisons in Fraction.__bool__)�AssertionErrorr's  rr(�DFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__eq__�s��$�%M�N�NrrDN)rErFrGrHrorr�r�rnr(r1rKr<rr�CustomValuer��s2���K�
#�
(��
��
�
O��Frrr�TrF)	�	functools�total_orderingrr�registerr�assertIsrnr�)rrrnrps    r�testBoolGuarateesBoolReturn�(FractionTest.testBoolGuarateesBoolReturn�s���
�	!�	!�	�	�
"�	�(	���!�!�+�.���N�	�
�i�L���
�
�a�k�k�9�-��
�
�d�1�g�t�$���N�	�
�i�L���
�
�d�1�g�u�%rc	���UR[S5[[S5S55 UR[S5[[S5S55 UR[S5[[S5S55 UR[SS5[[S	S
5S55 UR[SS5[[SS
5S55 g)
Ni8���ij���rGi�����rFrIr�rzr�i��)r-rr�r=s r�	testRound�FractionTest.testRound�s������q��w��a��g�r�(:�;����q��w��a��g�r�(:�;����q��u�e�A�b�E�2�&6�7����q��R�y�%��#�s��Q�*?�@����q��R�y�%��#�s��Q�*?�@rc
�	�UR[SS5[SS5[SS5-5 UR[SS5[SS5[SS5-
5 UR[SS5[SS5[SS5-5 UR[SS5[SS5[SS	5-5 UR[SS	5[SS5[SS5-5 UR[S
S5[SS	5[SS5-5 UR[[R
[S5[S
55 UR
S[SS5[SS5-5 UR
S[SS5[S5-5 UR[SS5[SS5[SS5-5 UR[SS5[SS5[SS5-5 UR[S5[SS54[[SS5[SS555 UR[S5[SS54[[SS5[SS555 UR[SS5[SS5[S5-5 UR[SS5[SS5[S5-5 UR
S[S	5[SS5-5 UR[SS5[SS575 [[S5[SS55nURURS
5 URURS5 [SS5S
-nURU[SS55 URURS5 URURS5 [SS5S-nURU[SS55 URURS5 URURS5 [SS5S-nURU[S	S55 URURS	5 URURS5 g)Nr�r�rIrHrq�r�rEr�r��rGrrPrKrCr���@rF)r)rrXrWr%�truedivr-�divmod�powr��real�imagrnro)r�z�ps   r�testArithmetic�FractionTest.testArithmetic�s�������1�a��!�A�r�(�Q�q�!�W�"4�5�����2�r��A�a��H�q��A�w�$6�7�����1�b��1�Q��8�a��1�g�#5�6�����1�a��!�A�q�'�A�a��G�"3�4�����1�a��!�A�r�(�Q�q�!�W�"4�5�����3���A�a��G�a��A�h�$6�7����+�X�-=�-=�q��t�Q�q�T�J����q�!�A�r�(�a��1�g�"5�6����v�q���|�q��t�';�<�����1�a��!�A�q�'�A�a��G�"3�4�����1�a��!�B��(�Q�q�!�W�"4�5����!�A�$��!�Q���&��1�a��!�A�q�'�*B�C����!�B�%��1�a��)�6�!�B��(�A�a��G�+D�E�����1�b��1�Q��7�a��d�?�3�����2�q��1�Q��7�a��e�#3�4����s�A�a�D�A�a��G�O�4�����1�a��1�Q��7�(�+���"��q��A�w������q�v�v�q�)��������#�
�b�!�H��M������A�a��G�$�������a�(��������*�
�b�!�H��N������A�b�!�H�%�������b�)��������*�
�b�!�H��N������A�a��G�$�������a�(��������*rc�p�UR[SS5[SS-S-S5[SSS-S-
5-5 UR[SS5[S	S
-*S5[SS	S
-5-5 URS
[SS54[[SS-S-S5[SSS-S-
555 URS	S-*S-[S	S
-*S5[SS	S
-5-5 URS[SS	S
-5[SS	S
-5-5 URS[S	S	S
-54[[SS	S
-5[SS	S
-555 URS	S-*S-[SS54[[S	S
-*S5[SS	S
-555 g)Nl�b;e�f�Op�Umn�P|�}�l�~J�w�5�PHyT#/jei�4�T�rI�#r�lP��~�cegrClr�rzrErHl��_�rjrJ)r-rr4rr=s r�testLargeArithmetic� FractionTest.testLargeArithmetic�s������
�C�K�
M�
�b�"�f�Q�h��!�A�h��B��q��$9�9�	
�
	
���
�a�0�1�
�q�#�v�g�q�M�A�a��C��L�(�	
�	
�#�#�
�
�D�L�N�
O�
�1�R��V�A�X�x�(�!�H�b�"�f�Q�h�*?�@�		
�	
���
�#�X�I��O�
�q�#�v�g�q�M�Q�q�!�S�&�\�)�	
�	
���
�
�a��C��L�A�a��C��L�(�	
�	
���
��!�Q��V����1�Q��3��<��1�a��f��.�	
�	
�#�#��3�h�Y�"�_�
�q�1�
2�
4��1�a��f�W�a�=�!�A�q�#�v�,�/�	
rc�<�UR[SS5[SS5S-5 URS[SS5S-5 URS[SS5S-5 UR[SS5S[SS5-5 URSS[SS5-5 URSS[SS5-5 UR[SS5[SS5S-
5 URS	[SS5S-
5 URS
[SS5S-
5 UR[SS5S[SS5-
5 URSS[SS5-
5 URS
S[SS5-
5 g)NrMrIr�g�������?��?y�������?��?rNg�������y�������rPg�������?y�������?)r-rr=s r�testMixedArithmetic� FractionTest.testMixedArithmetic�sV�����q��R�y�!�A�r�(�Q�,�7����s�A�a��H�s�N�3����x��1�b��X�)>�?����q��R�y�!�a��2�h�,�7����s�C�!�A�r�(�N�3����x�(�a��2�h�)>�?����q��R�y�!�A�r�(�Q�,�7����t�Q�q�"�X��^�4����y�!�A�r�(�h�*?�@����q��B�x��Q�q�"�X��6����s�C�!�A�r�(�N�3����x�(�a��2�h�)>�?rc
�	�UR[SS5[SS5S-5 URS[SS5S-5 URS[SS5S-5 UR[SS5S[SS5-5 URSS[SS5-5 URSS[SS5-5 UR[SS5[S	S5-[S	S55 UR[S	S5[SS5-[S	S55 UR[SS5[S	S5-[S
S55 UR[S	S5[SS5-[S	S55 UR[SS5[	S5-[	[S
S555 UR[	S5[SS5-S5 UR[SS5[
S5-[
S55 UR[[R[
S5[SS55 UR[SS5[SS5-[[SS5S55 UR[SS5[SS5-[SS55 UR[SS5[SS5-[[SS5[S
S555 UR[SS5[SS5-[SS55 UR[[R[SS5[SS55 UR[SS5[SS5-S5 UR[SS5[S5-[S55 UR[[R[S5[SS55 UR[SS5[S5-[S55 UR[[R[S5[SS55 g)Nr�rIr_r r�r!rEr�rHrJr�r�rP�@�Xz3/2 * X�@g@y@y@�@@)r-rrjr�r�r)r�rXrr%�mulr�rr%r�ryr=s r�testMixedMultiplication�$FractionTest.testMixedMultiplications`�����q��B�x��1�b��A��6����s�A�a��H�s�N�3����x��1�b��X�)>�?����q��B�x��Q�q�"�X��6����s�C�!�A�r�(�N�3����x�(�a��2�h�)>�?����q��A�w��q�!�)<�<�a��1�g�F����}�Q��2�Q�q�!�W�<�a��1�g�F����q��A�w��Q���2�C��A�J�?����s�1�a�y�1�Q��7�2�A�a��G�<����q��A�w��a��0�$�q��A�w�-�@����t�A�w��1�a��0�#�6�����1�a��<��#4�4�l�9�6M�N����)�X�\�\�<��3D�a��1�g�N����q��A�w��q�!��4�e�A�a��G�Q�6G�H����q��A�w��s�A��6��c�1�
�F����q��A�w��a���3�T�!�A�q�'�1�Q��7�5K�L����q��A�w��Q��):�:�K��PV�<W�X����)�X�\�\�5��A�;��!�Q��H����t�A�q�z�A�a��G�3�Z�@�����1�a��?�3�#7�7���9S�T����)�X�\�\�?�3�3G��1�a��Q�����1�a��8�C�=�0�(�9�2E�F����)�X�\�\�8�C�=�!�A�q�'�Jrc	��UR[SS5[SS5S-5 URS[SS5S-5 URS[SS5S-5 UR[SS5S[SS5-5 URSS[SS5-5 URSS[SS5-5 UR[S	S
5[S	S5-[SS
55 UR[SS	5[S
S	5-[SS
55 UR[S	S
5[S	S5-[SS
55 UR[SS	5[S
S	5-[SS
55 UR[S
S	5[	S5-[	[SS555 UR[	S5[S
S	5-S5 UR[S	S
5[
S5-[
S55 UR[[R[
S5[S	S
55 UR[S	S
5[SS
5-[[S	S5S55 UR[S	S
5[SS
5-[SS55 UR[S	S
5[SS	5-[SS55 UR[[R[SS
5[S
S	55 UR[SS	5[S
S	5-S5 UR[S	S
5[S5-[S55 UR[[R[S5[S	S
55 UR[S	S
5[S5-[S55 UR[[R[S5[S
S	55 g)Nr�rIr_r r�r!r�y$@rEr�rHrJr�r�rPr%r&z3/2 / XrrGr'��?g���Q��?g
ףp=
�?r()r-rrjr�r�r)r�rXrr%rr�rr�ryr=s r�testMixedDivision�FractionTest.testMixedDivision&s4�����q��B�x��1�b��A��6����s�A�a��H�s�N�3����x��1�b��X�)>�?����q��Q�x��Q�q�"�X��6����t�S�1�Q��8�^�4����y�8�q��B�x�*?�@����q��A�w��q�!�)<�<�a��1�g�F����}�Q��2�Q�q�!�W�<�a��1�g�F����q��A�w��Q���2�C��A�J�?����s�1�a�y�1�Q��7�2�A�a��G�<����q��A�w��a��0�$�q��A�w�-�@����t�A�w��1�a��0�#�6�����1�a��<��#4�4�l�9�6M�N����)�X�%5�%5�|�C�7H�!�A�q�'�R����q��A�w��q�!��4�e�A�a��G�R�6H�I����q��A�w��s�A��6��e�R�8H�I����q��A�w��a���3�T�$��5E�F����)�X�%5�%5�u�Q��{�A�a��G�L����t�A�q�z�A�a��G�3�Z�@�����1�a��?�3�#7�7���9S�T����)�X�%5�%5��s�7K�Q�q�RS�W�U�����1�a��8�C�=�0�(�9�2E�F����)�X�%5�%5�x��}�a��1�g�Nrc
�
�URS[SS5S-5 URS[SS5S-5 URSS[SS5-5 URSS[SS5-5 URSS[SS5-5 UR[SS5[SS5S-5 URS	[SS5S-5 UR[SS5S[SS5-5 URS
S[SS5-5 URS	[SS5[S5-5 UR[S5[SS5[S5-5 UR[S5[S
S5[S5-5 URS[S
S5[S5-5 URS[SS54[	[SS5S55 UR[	S	S5[	[SS5S55 URS[S54[	S[SS555 UR[	SS	5[	S[SS555 UR[	S	[S55[	[SS5[S555 UR[	S	[S55[	[SS5[S555 UR[	S[S55[	[S
S5[S555 UR[	S[S55[	[S
S5[S555 UR[SS5[SS5-[SS55 UR[SS5[SS5-[SS55 UR[SS5[
SS5-[
SS55 UR[
SS5[SS5-[SS55 UR[[R[SS5[S55 UR[S5[SS5-S5 UR[SS5[S5-[S55 UR[[R[S5[SS55 UR[[R[SS5[SS55 UR[[R[SS5[SS55 UR[[R[!SS5[SS55 UR[SS5[#S5-[#S55 UR[[R[#S5[SS55 UR[SS5[%S5-[%S55 UR[[R[%S5[SS55 g)Nrr�rI�r rKl�d�&O�!g"@r_g�������?rarbrFg��������rEr�rHr�r���?r&z3/2 % X)r-rrr4rrjr�rXrr%�modr�r)r�r�r%rr�ryr=s r�testMixedIntegerDivision�%FractionTest.testMixedIntegerDivisionCs������q�!�A�r�(�a�-�0����s�A�a��H��O�4����r�1��!�R��=�1����v�v��1�b��'9�:����z�3�!�A�r�(�?�;����q��B�x��1�b��A��6����s�A�a��H�s�N�3����q��A�w��A�a��H��5����y�#��!�R��.�9����s�A�a��H�u�U�|�$;�<����u�V�}�a��2�h��v��.F�G����u�U�|�Q�r�2�Y��u��-E�F����t�Q�r�2�Y��v��%>�?��#�#�Q��!�R��M�6�!�A�r�(�A�3F�G��#�#�F�3��$4�f�Q�q�"�X�s�6K�L��#�#�R��1��J��q�!�A�r�(�0C�D��#�#�F�3��$4�f�S�!�A�r�(�6K�L��#�#�F�3��e��$=�v�a��2�h�PU�V[�P\�?]�^��#�#�F�3��f�
�$>��q��B�x�QV�W]�Q^�@_�`��#�#�F�4��u��$>��q��R�y�RW�X]�R^�@_�`��#�#�F�4��v��$?���"�b�	�SX�Y_�S`�Aa�b����q��A�w��q�!�)<�<�a��2�h�G����}�Q��2�Q�q�!�W�<�a��1�g�F����q��A�w��Q���2�C��1�I�>����s�1�a�y�1�Q��7�2�A�a��G�<����)�X�\�\�1�Q��7�D��G�D����t�A�w��1�a��0�#�6�����1�a��<��#4�4�l�9�6M�N����)�X�\�\�<��3D�a��1�g�N����)�X�\�\�1�Q��7�E�!�Q�K�H����)�X�\�\�1�Q��7�K��1�<M�N����)�X�\�\�4��1�:�q��A�w�G�����1�a��?�3�#7�7���9S�T����)�X�\�\�?�3�3G��1�a��Q�����1�a��8�C�=�0�(�9�2E�F����)�X�\�\�8�C�=�!�A�q�'�Jrc	��UR[SS5[SS5S-5 UR[SS5[SS5S-5 URS[SS5S-5 URS[SS5S	-5 URS
S[SS5-5 [S[SS55nURSUR5 URSUR5 UR[SS
5S[SS5-5 URS
S
[SS5-5 URSS
[SS5-5 URS	S	[SS5-5 UR[[R[SS5S5 UR[SS5[SS5-[SS55 UR[SS5[SS5-[SS55 UR[SS5[SS5-[SS55 UR[SS
5[SS5-S5 UR[S
S5[SS5-[5 UR[S
S5[SS5-S5 UR[SS5[SS5-S5 UR[SS
5[SS5-S5 UR[SS5[SS5-[SS55 UR[SS5[SS5-[SS55 UR[S
S5[SS5-[5 UR[S
S5[SS5-S5 UR[S
5[SS5-[S
S55 UR[S
5[SS5-[S
[S555 UR[S
5[SS5-[S
[S5*55 UR[S
5[SS5-[S
S55 UR[SS5[S5-[S55 UR[S5[SS5-[S55 UR[SS5[SS5-[![SS
5S55 UR[SS5[SS5-[![S5S55 UR[SS5[#SS5-[!SS55 UR[SS5[#SS5-[!SS55 UR[!S
S5[SS5-[!SS55 UR[!S
S5[SS5-[!S S!55 UR[!S
S5[SS5-[!S"S#55 UR[!S
S5[SS5-[!S$S55 UR[SS5[%S5-[%S55 UR[%S5[SS5-[%S55 UR[SS5['S5-['S55 UR['S5[SS5-['S55 g)%Nrzr�rIrGr�r_r r�r!r�rFrrg�?rErrrqi����rPg@r�y@r%g�r&z3/2 ** XzX ** 1.5r1g@g @�@r�g�?r�g�?)r-rrr�rr)rrXrWr%r�r�rr�r�rr�r%r�ry)rrs  r�testMixedPower�FractionTest.testMixedPoweros������q��a�y�!�A�r�(�b�.�9����q��a�y�!�B��(�a�-�8����s�A�a��H��O�4����x��1�b��h�)?�@����q�1��!�Q��<�0���A�a��G������q�!�&�&�)�����A�F�F�#����q��A�w��a��A�h��7����s�Q�!�A�q�'�\�2����t�S�A�b�!�H�_�5����x�(�q��B�x�)?�@����+�X�\�\��A�q�'�2�	'�	
���q��A�w�#�a��)�3�Q�r�1�X�>����q��A�w�#�b�!�*�4�a��2�h�?����q��Q�x�3�r�1�:�5�q��R�y�A����q��A�w�#�a��)�3�U�;����a��1�g��R���3�U�;����q��A�w�#�b�!�*�4�e�<����q��Q�x�3�r�1�:�5�v�>����s�1�a�y�A�a��G�3�U�;����s�1�a�y�A�a��G�3�S��Q�Z�@����s�1�a�y�A�b�!�H�4�a��2�h�?����c�!�Q�i�1�R��8�3�U�;����s�1�a�y�A�b�!�H�4�e�<����t�A�w�!�A�q�'�1�4��3�<�@����t�A�w�!�A�q�'�1�4��1�Q�4�=�A����t�A�w�!�B��(�2�D��Q�q�T�E�N�C����t�A�w�!�B��(�2�D��D�M�B�����1�a��L��$5�5�|�J�7O�P�����c�*�a��1�g�5�|�J�7O�P����q��A�w�$�q�!�*�4�e�A�a��F�C�6H�I����q��A�w�$�q�!�*�4�e�A�a�D�#�6F�G����q��A�w�+�a��*;�;�U�4��=M�N����q��A�w�+�a��*;�;�U�3��_�M����u�Q��{�a��1�g�5�u�S�#��G����u�Q��{�a��1�g�5�u�R��|�D����u�Q��{�a��A�h�6��h��8K�L����u�Q��{�a��A�h�6��e�T�8J�K�����1�a��O�C�$8�8�/�*�:U�V������-��1�a��8�/�*�:U�V�����1�a��H�S�M�1�8�J�3G�H�����#��!�A�q�'�1�8�J�3G�Hrc	���UR[[R[	SS5[S55 UR[[R[S5[	SS55 g)NrErMz	3.1415926)rXrr%�addrrr=s r�testMixingWithDecimal�"FractionTest.testMixingWithDecimal�sN�����)�X�\�\��A�b�'�7�;�#7�	9����)�X�\�\�!�+�.��!�B��	9rc���UR[SS5[SS5:5 UR[SS5[SS5:5 UR[SS5[SS5:*5 UR[SS5[SS5:*5 UR[SS5[SS5:*5 UR[SS5[SS5:H5 UR[SS5[SS5:H5 UR[SS5[SS5:g5 UR[SS5[SS5:g5 g)Nr�r�rE)r�rr�r=s r�testComparisons�FractionTest.testComparisons�s������!�Q��!�A�q�'�)�*�����1�a��1�Q��7�*�+�����!�Q��1�Q��7�*�+�����!�Q��1�Q��7�*�+�����1�a��A�a��G�+�,�����!�Q��1�Q��7�*�+�����1�a��A�a��G�+�,�����1�a��A�a��G�+�,�����!�Q��1�Q��7�*�+rc���UR[SS5[SS5:H5 UR[SS5[SS5:H5 UR[SS5[SS5:H5 UR[SS5[SS5:H5 UR[SS5[SS5:5 UR[SS5[SS5:5 UR[SS5[SS5:5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:*5 UR[SS5[SS5:*5 UR[SS5[SS5:*5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:5 UR[SS5[SS5:5 UR[SS5[SS5:5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:*5 UR[SS5[SS5:*5 UR[SS5[SS5:*5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 UR[SS5[SS5:�5 g)Nr�r�rEr�rC)r�rrMr�r=s r�testComparisonsDummyRational�)FractionTest.testComparisonsDummyRational�sf������!�Q��=��A�#6�6�7����
�a��+�q��A�w�6�7�����1�a��M�!�Q�$7�7�8�����q�!�,��!�Q��7�8�����!�Q��-��1�"5�5�6�����1�a��=��A�#6�6�7�����1�a��=��A�#6�6�7�����1�a��=��A�#6�6�7�����1�a��=��A�#6�6�7�����!�Q��-��1�"5�5�6�����!�Q��=��A�#6�6�7�����!�Q��=��A�#6�6�7�����1�a��M�!�Q�$7�7�8�����1�a��M�!�Q�$7�7�8�����!�Q��=��A�#6�6�7�����!�Q��=��A�#6�6�7����
�a��+�a��1�g�5�6�����q�!�,�q��A�w�6�7�����q�!�,�q��A�w�6�7�����q�!�,�q��A�w�6�7�����q�!�,�q��A�w�6�7����
�a��+�a��1�g�5�6����
�a��+�q��A�w�6�7����
�a��+�q��A�w�6�7�����q�!�,��!�Q��7�8�����q�!�,��!�Q��7�8����
�a��+�q��A�w�6�7����
�a��+�q��A�w�6�7rc��[S5n[SS5nURX:g5 URX:=(d X:�5 URX:H5 URX:*=(a X:�5 URX!:g5 URX!:=(d X!:�5 URX!:H5 URX!:*=(a X!:�5 g)NgUUUUUU�?r�rE)rrr�r�r
s   r�testComparisonsDummyFloat�&FractionTest.testComparisonsDummyFloat�s����u���
�a��G����������������'������ ������*�A�F�+���������������'������ ������*�A�F�+rc��URS[SS5:5 URS[SS5:5 UR[SS5S:5 UR[SS5S:5 UR[SS5S:5 UR[SS5S:5 URS[SS5:5 URS[SS5:5 UR[S	5[SS5:5 UR[S
5[SS5:5 UR[S
5[SS5:5 UR[SS5[S	5:5 UR[SS5[S
5:5 UR[SS5[S
5:5 g)Nr�rHr�rEr��333333�?皙�����?r2rarbrrIr`rqrC�rT�����r�rr�rr=s r�
testMixedLess�FractionTest.testMixedLess�sd������A�a��G��$�����Q�q�!�W��%�����!�Q��!��$�����1�a��1��%�����!�Q��#�
�&�����1�a��3��'�����a��1�g�
�&�����q��A�w��'�����u���!�Q��/�0�����f�
��!�R��0�1�����u���"�a��0�1�����!�Q��%��,�.�/�����2�r��U�6�]�2�3�����3���u�U�|�3�4rc��URS[SS5:*5 URS[SS5:*5 UR[SS5S:*5 UR[SS5S:*5 URS[SS5:*5 URS[SS5:*5 UR[SS5S:*5 UR[SS5S:*5 UR[S	5[SS5:*5 UR[S
5[SS5:*5 UR[S
5[SS5:*5 UR[SS5[S	5:*5 UR[SS5[S
5:*5 UR[SS5[S
5:*5 g)Nr2r�r�rHrIr�rErHrarbrrIr`rqrCrJrTrKrLrMr=s r�testMixedLessEqual�FractionTest.testMixedLessEqual�sd������q��A�w��'������!�Q���(�����!�Q��3��'�����1�a��C��(�����Q�q�!�W��%�����a��1�g��&�����!�Q��1��%�����1�a��A��&�����u���1�a��0�1�����f�
��1�b��1�2�����u���2�q��1�2�����!�Q��5��<�/�0�����2�r��e�F�m�3�4�����3����e��4�5rc
�j�UR[S5[S5:H5 URS[[[R"S5S-55:5 URS[[R"S5S-5:5 URS[[R"S5S-
5:*5 URS[[R"S5S-
5:�5 URS[[R"S5S-5:�5 g)NrKr�r�)r�rrrPr�r�r=s r�testBigFloatComparisons�$FractionTest.testBigFloatComparisonss�������6��e�F�m�3�4������a��
�
�4�(8�1�(<�&=� >�>�?�����q����D�!1�A�!5�6�6�7������4�:�:�d�#3�a�#7�!8�8�9�����q����D�!1�A�!5�6�6�7������4�:�:�d�#3�a�#7�!8�8�9rc�R�UR[S5[S5:H5 UR[[
R[S5[S55 UR[[
R[S5[S55 [SS5n[SS5n[SS5nURX:H5 URX:g5 URX:H5 URX:g5 [
R[
R[
R[
R4H_nUR[XAU5 UR[XBU5 UR[XAU5 UR[XCU5 Ma g)NrKrErr-r1g�������?)r�rrrXrr%r8r,r�r0r4)rrr�wr!s     r�testBigComplexComparisons�&FractionTest.testBigComplexComparisons
s(������6��g�f�o�5�6����)�X�[�[�!�F�)�W�V�_�M����)�X�[�[�!�F�)�W�V�_�M�
�a��G���E�3����E�3�������������� ������ ��������+�+�x�{�{�H�K�K����D�B����i���2����i���2����i���2����i���2�	Erc��URS[SS5:H5 URS[SS5:H5 UR[SS5S:H5 UR[SS5S:H5 URS[SS5:H5 URS[SS5:H5 UR[SS5S:H5 UR[SS5S:H5 UR[SS5[S	5:H5 UR[S	5[SS
5:H5 UR[SS5[S5:H5 UR[S5[SS5:H5 g)
Nr2r�r�rHrIr�rErHr`rCrarbrMr=s r�testMixedEqual�FractionTest.testMixedEquals.������q��A�w��'������!�Q���(�����!�Q��3��'�����1�a��C��(�����Q�q�!�W��%�����a��1�g��&�����!�Q��1��%�����1�a��A��&�����1�a��E�%�L�0�1�����u���1�a��0�1�����1�a��E�%�L�0�1�����v��!�A�q�'�1�2rc	�t�URS[[SS555 URS[[S555 URS[[SS555 URS	[[SS555 URS
[[SS555 g)NzFraction(7, 3)rCrEz Fraction(6283185307, 2000000000)�3.1415926535z#Fraction(-1, 100000000000000000000)r�l���� F�x:^Vz7/3�7)r)r|rr8r=s r�testStringification� FractionTest.testStringification-s������)�4��!�Q��=�9����;��a��/�0�	2����>��a��7�m�,�	.������A�a��G��-�����c�!�A�q�'�l�+rc	�Z�[RRn[RRnUR	[S5[[
SS555 UR	[SS-5[[
SS-555 UR[[S55[[
S555 UR	U[[
SU555 UR	[[
S55[
S5R55 g)	Nr\rHr�rI�2rKr�rF)
�sys�	hash_info�modulusrar)�hashrr�r�__hash__)r�hmod�hinfs   r�testHash�FractionTest.testHash6s����}�}�$�$���}�}� � ������c��D��1�a��M�2�����b�"�f��t�A�b�"�f�I��7����D��v��/��a��i��A�����t�A�a��J�/�0�	
����a��e��a��e�n�n�&6�7rc� �[S5nSUSSSSS4up#pEpgn[XB-
5[SS5:�a:UnXV-US-peXx-US-p�X5-U-nXC-
n[XB-
5[SS5:�aM:UR[RU5 g)NrErr�r
�ʚ;r� )r�absr�rP�pi)	r�three�lasts�tr}r��nar��das	         r�testApproximatePi�FractionTest.testApproximatePiAs����!���$%�u�a��A�q�"�$<�!��!��r��!�)�n�q��E�{�*��E��D�"�Q�$�r��D�"�R�%�r���!��A�
�F�A��!�)�n�q��E�{�*�	
���t�w�w��*rc�N�[S5nSS[S5SSS4up#pEpg[XC-
5[SS5:�aDUnUS-
nXRUS-
--nXaU--nUS-nXFU-U--
n[XC-
5[SS5:�aMDUR[R"S5U5 g)Nr�rrnr�rF)rrpr�rP�cos)rrr�rsr}�factrR�signs        r�testApproximateCos1� FractionTest.testApproximateCos1Ns���
�a�D��'(�!�Q�q�T�1�a��':�$��!�3��!�)�n�q��E�{�*��E�
��F�A���1��I��D��q�5�L�C��B�J�D�
�t��d�"�"�A�
�!�)�n�q��E�{�*�	
���t�x�x��{�A�.rc
��[SS5n[SS5n[S[RS-5H'nURU[
[X555 M) UR[U5[[U555 UR[U5[[U555 UR[U5[[U555 UR[U5[[U555 URU[U55 URU[U55 g)NrrrCrr�)
rrj�range�pickle�HIGHEST_PROTOCOLr)r	r�idrrr�r-)rrp�dr�protos    r�test_copy_deepcopy_pickle�&FractionTest.test_copy_deepcopy_pickle\s���
�b�!�H��
�2�q�
!���1�f�5�5��9�:�E����Q��e�A�o� 6�7�;�����A���4��7��,�����A���8�A�;��0����B�r�F�B�t�B�x�L�1����B�r�F�B�x��|�$4�5����r�4��8�,����r�8�B�<�0rc�V�[SS5nUR[[USS5 g)NrrrCrurI)rrXr�r�r�s  r�
test_slots�FractionTest.test_slotshs#��
�b�!�H�����.�'�1�c�2�>rc�l�"SS[5n[R"U"S5U"S55nURURS5 URUR
S5 UR[
UR5U5 UR[
UR
5U5 g)Nc�F�\rSrSrSrSrSr\S5r\S5r	Sr
g)	�-FractionTest.test_int_subclass.<locals>.myintinc�N�[U5"[U5[U5-5$r�rsr�r's  rr��5FractionTest.test_int_subclass.<locals>.myint.__mul__os���D�z�#�d�)�c�%�j�"8�9�9rc�N�[U5"[U5[U5-5$rr�r's  rr��:FractionTest.test_int_subclass.<locals>.myint.__floordiv__qs���D�z�#�d�)�s�5�z�"9�:�:rc�R�[U5"[U5[U5-5nU$rr�)rr rs   rr��5FractionTest.test_int_subclass.<locals>.myint.__mod__ss"����J�s�4�y�3�u�:�5�6���rc�6�[U5"[U55$rr�r=s rrn�7FractionTest.test_int_subclass.<locals>.myint.numeratorvs���D�z�#�d�)�,�,rc�$�[U5"S5$r�)rsr=s rro�9FractionTest.test_int_subclass.<locals>.myint.denominatorys���D�z�!�}�$rr<N)rErFrGrHr�r�r�r�rnrorKr<rr�myintr�ns7��
:�
;�
��
-��
-�
�
%��
%rr�rEr�r�r�)r�rWrXr)rnrors)rr�r�s   r�test_int_subclass�FractionTest.test_int_subclassms���
	%�C�
	%�
���u�U�|�U�5�\�:��������a�(��������*�����a�k�k�*�E�2�����a�m�m�,�e�4rc���/[SS5SS4P[SS5SS4P[S5SS4P[S5SS	4P[SS5S
S4P[SS5S
S4P[S5S
S4P[S5S
S	4P[SS5S
S4P[SS5S
S4P[S5S
S4P[S5S
S	4P[S5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5S S!4P[SS5S"S#4P[SS5S$S%4P[S&S'5S(S)4P[S*S'5S+S,4P[S-5S+S.4P[S/5S(S04P[S15S2S34P[S45S2S54P[S5S2S64PnUH9up#nURX#S79 UR[X#5U5 SSS5 M; g!,(df   MM=f)8Nr�rE�+z+2/3rGz-2/3z+3rq�-3� z 2/3z 3�-z2/3�3rroz    0z  2/3z -2/3r�r��2z<5z2/3  z>5z^5z 2/3 z=5z-2/3 z- 2/3zX>5zXX2/3z.<5z-2/3.z
^6z
-2/3
i�i/�,z1,234/5,679i.���r�z-1_234/5_679i���	1_234_567iy)�z
-1,234,567rt�#z123/1i����z-123/1z0/1��fraction�spec�r�subTestr)�format�r�	testcasesr�r�r+s     r� test_format_no_presentation_type�-FractionTest.test_format_no_presentation_type�s���+
�
�q�!�W�c�6�"�+
��r�1�X�s�F�#�+
��q�T�3���	+
�
�r�U�C���+
��q�!�W�c�6�"�
+
��r�1�X�s�F�#�+
��q�T�3���+
��r�U�C���+
��q�!�W�c�5�!�+
��r�1�X�s�F�#�+
��q�T�3���+
��r�U�C���+
��q�T�3�� �+
� �q�!�W�c�7�#�!+
�"�r�1�X�s�G�$�#+
�$�q�!�W�c�5�!�%+
�&�q�!�W�c�5�!�'+
�(�q�!�W�c�5�!�)+
�,�q�!�W�d�G�$�-+
�.�q�!�W�d�G�$�/+
�0�q�!�W�d�G�$�1+
�2�q�!�W�d�G�$�3+
�4�r�1�X�t�W�%�5+
�6�r�1�X�t�W�%�7+
�8�r�1�X�t�W�%�9+
�:�r�1�X�t�W�%�;+
�>�q�!�W�e�W�%�?+
�@�r�1�X�u�g�&�A+
�B�r�1�X�v�z�*�C+
�F�t�T�]�C��/�G+
�H�u�d�^�S�.�1�I+
�J�w�Z��k�*�K+
�L�x�[�#�|�,�M+
�P�s�V�S�'�"�Q+
�R�t�W�c�8�$�S+
�T�q�T�3���U+
�	�X)2�$�H�H����x��;�� � ���!7��B�<�;�)2�;�;�s�*I�
I"	c��/[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS	4P[SS
5SS4P[SS5SS4P[S
S5SS4P[SS5SS4P[S
S5SS4P[SS5SS4P[SS5SS4P[S5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[S5SS4P[S5SS4P[S5SS4P[S5SS 4P[S!5SS"4P[S#5SS"4P[S$S5SS%4P[S&S5SS'4P[S(5SS)4P[S*5SS+4P[S,5SS-4P[SS5S.S/4P[SS5S0S14P[S25S3S44P[S5S65S7S84P[S25S9S:4P[S5S65S;S84P[S5S65S<S84P[S5S65S=S>4P[S?5S@SA4P[SB5SCSD4P[SES6S-5SFSG4PnUH9up#nURX#SH9 UR[X#5U5 SSS5 M; g!,(df   MM=f)INr�rEz.6ez6.666667e-01z1.500000e+00rrz1.538462e-01�z8.695652e-02�!z6.060606e-02z6.500000e+00�z1.000000e+01z1.150000e+01z1.650000e+01rz.3ez	0.000e+00r�r�z	1.000e-03rzz	1.000e-02rIz	1.000e-01z	1.000e+00z	1.000e+01z	1.000e+02z	1.000e+03z99.999994999999z9.999999e+01z	99.999995z1.000000e+02z99.999995000001rGz
-6.666667e-01rqz
-1.500000e+00i����z
-1.000000e+02�1e1000z1.000e+1000z1e-1000z1.000e-1000z.6Ez6.666667E-01z.1ez6.7e-01z0.995z.0ez1e+00rQrCr>z3.142857e+00z#.0ez1.e+00z11.6ez12.6ez13.6ez
 3.142857e+00z1234567.123456z,.5e�1.23457e+06z
123.123456z012_.2ez0_001.23e+02rFzz.6ez
-3.091690e-85r�r�r�s     r�test_format_e_presentation_type�,FractionTest.test_format_e_presentation_type�s���3
�
�q�!�W�e�^�,�3
�
�q�!�W�e�^�,�3
��q�"�X�u�n�-�3
��q�"�X�u�n�-�	3
�
�q�"�X�u�n�-�3
��r�1�X�u�n�-�
3
��r�1�X�u�n�-�3
��r�1�X�u�n�-�3
��r�1�X�u�n�-�3
��q�!�W�e�^�,�3
��q�!�W�e�^�,�3
��q�T�5�+�&�3
��q�$�Z���,�3
� �q�#�Y��{�+�!3
�"�q�"�X�u�k�*�#3
�$�q�!�W�e�[�)�%3
�&�r�U�E�;�'�'3
�(�s�V�U�K�(�)3
�*�t�W�e�[�)�+3
�.� �
!�5�.�9�/3
�0�{�^�U�N�3�13
�2� �
!�5�.�9�33
�6�r�1�X�u�o�.�73
�8�r�1�X�u�o�.�93
�:�t�W�e�_�-�;3
�>�x�[�%��/�?3
�@�y�\�5�-�0�A3
�D�q�!�W�e�^�,�E3
�H�q�!�W�e�Y�'�I3
�J�w�Z���(�K3
�N�r�1�X�s�N�+�O3
�R�w�Z���*�S3
�V�r�1�X�w��/�W3
�X�r�1�X�w��/�Y3
�Z�r�1�X�w��0�[3
�^��
 �&�-�8�_3
�`�|�_�i��8�a3
�d�r�1�c�6�]�F�O�4�e3
�	�h)2�$�H�H����x��;�� � ���!7��B�<�;�)2�;�;�s�	I2�2
J	c��/[SS5SS4P[SS5SS4P[SS5SS4P[S	S5SS
4P[SS5SS4P[SS5SS
4P[SS5SS4P[SS5SS4P[SS5SS4P[SS5SS4P[S5SS4P[SS5SS4P[SS5SS4P[S5SS4P[S S5SS!4P[S"5SS#4P[S$5SS%4P[S&5SS%4P[S'5SS(4P[S)5SS(4P[S*5SS+4P[S,5SS+4P[S-5SS.4P[S/5SS04P[S15SS24P[S35SS24P[S45SS54P[S65SS54P[S75SS84P[S95SS84P[S:5SS;4P[SS5SS4P[SS5S<S4P[SS5S=S>4P[SS5S?S@4P[SAS5SSB4P[SAS5S<SB4P[SAS5S=SB4P[SAS5S?SB4P[SS5SCSD4P[SES5SCSF4P[SS5SCSG4P[S S5SCSH4P[SS5SISJ4P[SES5SISK4P[SS5SISL4P[S S5SISM4P[SN5SOS4P[SN5SPS4P[SN5SQSR4P[SN5SSST4P[SU5SOS4P[SU5SPS4P[SU5SQSR4P[SU5SSST4P[SS5SVSW4P[SX5SVSY4P[SX5SZS[4P[SS5S\SW4P[SS5S]S^4P[SS5S_S4P[SS5S`S4P[SS5SaSb4P[SS5ScSd4P[SS5SeSf4P[SS5SgSh4P[SAS5SiSj4P[SS5SiSk4P[SAS5SlSB4P[SAS5SmSn4P[SAS5SoSp4P[SAS5SqSr4P[SAS5SsSt4P[SAS5SuSv4P[SAS5SwSx4P[SAS5SySz4P[SAS5S{S|4P[SAS5S}S~4P[SAS5SS�4P[SAS5S�S�4P[SAS5S�S�4P[SAS5S�S�4P[SS5S�S�4P[SS5S�S�4P[SS5S�S4P[SS5S�S4P[SS5S�S4P[SS5S�S4P[SS5S�S4P[SS5S�S4P[SS5S�S4P[SS5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[SS5S�S4P[SS5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[S�5S�S�4P[SS5S�S4P[SS5S�S�4P[SS5S�S�4P[SS�5S�S�4P[SS�5S�S�4P[SS�5S�S�4P[SS�5S�S�4P[SS5S�S�4P[SS5S�S�4P[S�S5S�S�4P[SS5S�S�4P[SS5S�S�4P[SS5S�S�4P[SS5SS4P[SS5SS4P[SS5SS
4P[S�S�5SS�4P[S�S�5SS�4P[S�S�5SS�4P[SS�5S�S�4P[S�S�5S�S�4P[S�S�5S�S�4P[S�S�5S�S�4P[S�S�5S�S�4PnUH9up#nURX#S�9 UR[X#5U5 SSS5 M; g!,(df   MM=f)�Nrr�z.2fz0.00rEz0.33r�z0.67r�z1.33r�0.12z0.38rrz0.08��z0.01rjrQrCz.5fz3.14286�	399024789z399024789.00i��i��z.50fz43.14159265392142104470871594159265392142104470871594r�z3.142857z0.000000i��z	-3.142857z1.225z1.22z1.2250000001z1.23z1.2349999999z1.235z1.24z1.245z1.2450000001z1.25z1.2549999999z1.255z1.26z-1.225z-1.22z
-1.2250000001z-1.23z
-1.2349999999z-1.235z-1.24z-1.245z
-1.2450000001z-1.25z
-1.2549999999z-1.255z-1.26z-.2fz+.2fz+0.67z .2fz 0.67rGz-0.67z.0fr�rFr�r�r�z#.0fz0.z-0.�3.z-3.z-0.001zz.2fz-z.2fz+z.2fz+0.00z z.2fz 0.00z0.001z6.2fz  0.67i90z12345.00�12fz12345.000000z>6.2fz<6.2fz0.67  z^3.2fz^4.2fz^5.2fz0.67 z^6.2fz 0.67 z^7.2fz 0.67  z^8.2fz  0.67  z=+8.2fz-   0.67z+   0.67zX>3.2fzX>7.2fzXX-0.67zX<7.2fz-0.67XXzX^7.2fzX-0.67XzX=7.2fz-XX0.67z >7.2fz  -0.67z>7.2fz-0.67z
>7.2fz

-0.67z	>7.2fz		-0.67z>>7.2fz>>-0.67z<>7.2fz<<-0.67u→>7.2fu→→-0.67z07.2fz-000.67z-07.2fz+07.2fz+000.67z 07.2fz 000.67z0.2fz>0.2fz<0.2fz^0.2fz=0.2fz00.2fz,.2fz,.7fz	0.6666667z
123456.789z
123,456.79�1234567z1,234,567.00�12345678z
12,345,678.00z,fz12,345,678.000000z_.2fz_.7fz
123_456.79z1_234_567.00z
12_345_678.00�	1234.5678z07,.2fz1,234.57z08,.2fz09,.2fz	01,234.57z010,.2fz
001,234.57z011,.2fz0,001,234.57z012,.2fz013,.2fz
00,001,234.57z014,.2fz000,001,234.57z015,.2fz0,000,001,234.57z016,.2fz
-1234.5678z	-1,234.57z
-01,234.57z-001,234.57z
-0,001,234.57z-00,001,234.57z-000,001,234.57z-0,000,001,234.57z06,.0fz-1,235z07,.0fz-01,235z08,.0fz-001,235z09,.0fz
-0,001,235z0=12,.2fz12.34zX>0.2fz.5Fz.2%z314.29%z14.29%�Fz1.43%i�z0.14%iXz0.01%ipz0.00%z.0%z14%z#.0%z14.%rzz,.2%z	1,428.57%z7.2%z8.2%z 314.29%z08.2%z0314.29%i�	r�z2.54i�	z2.55iK
z2.64z.1fz0.0�1�3z0.1��z0.2r�r�r�s     r�test_format_f_presentation_type�,FractionTest.test_format_f_presentation_type�s ��x
�
�q�!�W�e�V�$�x
��q�!�W�e�V�$�x
��q�!�W�e�V�$�	x
�
�q�!�W�e�V�$�x
��q�!�W�e�V�$�
x
��q�!�W�e�V�$�x
��q�"�X�u�f�%�x
��q�#�Y��v�&�x
��q�#�Y��v�&�x
��r�1�X�u�i�(�x
��{�^�U�N�3�x
��v�u�
�v�
C�
E�x
�"�r�1�X�s�J�'�#x
�$�q�T�3�
�#�%x
�&�s�A�Y��[�)�'x
�*�w�Z���'�+x
�,�~�
��v�.�-x
�.�~�
��v�.�/x
�0�w�Z���'�1x
�2�w�Z���'�3x
�4�~�
��v�.�5x
�6�~�
��v�.�7x
�8�w�Z���'�9x
�:�x�[�%��)�;x
�<��
���0�=x
�>��
���0�?x
�@�x�[�%��)�Ax
�B�x�[�%��)�Cx
�D��
���0�Ex
�F��
���0�Gx
�H�x�[�%��)�Ix
�L�q�!�W�e�V�$�Mx
�N�q�!�W�f�f�%�Ox
�P�q�!�W�f�g�&�Qx
�R�q�!�W�f�g�&�Sx
�T�r�1�X�u�g�&�Ux
�V�r�1�X�v�w�'�Wx
�X�r�1�X�v�w�'�Yx
�Z�r�1�X�v�w�'�[x
�^�q�!�W�e�S�!�_x
�`�r�1�X�u�d�#�ax
�b�r�1�X�u�c�"�cx
�d�s�A�Y��t�$�ex
�h�q�!�W�f�d�#�ix
�j�r�1�X�v�u�%�kx
�l�r�1�X�v�t�$�mx
�n�s�A�Y���&�ox
�r�x�[�&�&�)�sx
�t�x�[�'�6�*�ux
�v�x�[�'�7�+�wx
�x�x�[�'�7�+�yx
�z�w�Z���(�{x
�|�w�Z��&�)�}x
�~�w�Z��'�*�x
�@�w�Z��'�*�Ax
�D�q�!�W�f�h�'�Ex
�F�u�X�v�z�*�Gx
�H�u�X�u�n�-�Ix
�L�q�!�W�g�x�(�Mx
�N�q�!�W�g�x�(�Ox
�P�q�!�W�g�v�&�Qx
�R�q�!�W�g�v�&�Sx
�T�q�!�W�g�w�'�Ux
�V�q�!�W�g�x�(�Wx
�X�q�!�W�g�y�)�Yx
�Z�q�!�W�g�z�*�[x
�^�r�1�X�x��,�_x
�`�q�!�W�h�
�+�ax
�d�r�1�X�x��)�ex
�f�r�1�X�x��+�gx
�h�r�1�X�x��+�ix
�j�r�1�X�x��+�kx
�l�r�1�X�x��+�mx
�n�r�1�X�x��+�ox
�r�r�1�X�{�O�4�sx
�t�r�1�X�y�+�.�ux
�v�r�1�X�y�+�.�wx
�x�r�1�X�x��+�yx
�z�r�1�X�x��+�{x
�|�r�1�X�z�=�1�}x
�@�r�1�X�w�	�*�Ax
�B�r�1�X�x��+�Cx
�D�q�!�W�h�	�*�Ex
�F�q�!�W�h�	�*�Gx
�L�q�!�W�f�f�%�Mx
�N�q�!�W�g�v�&�Ox
�P�q�!�W�g�v�&�Qx
�R�q�!�W�g�v�&�Sx
�T�q�!�W�g�v�&�Ux
�X�q�!�W�g�v�&�Yx
�\�q�!�W�f�f�%�]x
�^�q�!�W�f�k�*�_x
�`�|�_�f�l�3�ax
�b�y�\�6�>�2�cx
�d�z�]�F�O�4�ex
�f�z�]�D�"5�6�gx
�j�q�!�W�f�f�%�kx
�l�q�!�W�f�k�*�mx
�n�|�_�f�l�3�ox
�p�y�\�6�>�2�qx
�r�z�]�F�O�4�sx
�v�{�^�X�z�2�wx
�x�{�^�X�z�2�yx
�z�{�^�X�{�3�{x
�|�{�^�Y��5�}x
�~�{�^�Y��7�x
�@�{�^�Y��7�Ax
�B�{�^�Y��8�Cx
�D�{�^�Y�(8�9�Ex
�F�{�^�Y�(:�;�Gx
�H�{�^�Y�(:�;�Ix
�J�|�_�h��4�Kx
�L�|�_�h��4�Mx
�N�|�_�h��4�Ox
�P�|�_�i��6�Qx
�R�|�_�i��7�Sx
�T�|�_�i��9�Ux
�V�|�_�i��9�Wx
�X�|�_�i�)9�:�Yx
�Z�|�_�i�):�;�[x
�\�|�_�i�)<�=�]x
�`�|�_�h��1�ax
�b�|�_�h�	�2�cx
�d�|�_�h�
�3�ex
�f�|�_�h��5�gx
�l�{�^�Z��8�mx
�v�w�Z���)�wx
�x�w�Z��7�+�yx
�|�r�1�X�u�i�(�}x
�@�r�1�X�u�i�(�Ax
�B�q�!�W�e�X�&�Cx
�D�q�"�X�u�g�&�Ex
�F�q�#�Y��w�'�Gx
�H�q�$�Z���(�Ix
�J�q�%�[�%��)�Kx
�L�q�!�W�e�U�#�Mx
�N�q�!�W�f�f�%�Ox
�P�s�A�Y���,�Qx
�R�r�1�X�v�y�)�Sx
�T�r�1�X�v�z�*�Ux
�V�r�1�X�w�
�+�Wx
�Z�q�!�W�e�V�$�[x
�\�q�!�W�e�V�$�]x
�^�q�!�W�e�V�$�_x
�`�t�T�]�E�6�*�ax
�b�t�T�]�E�6�*�cx
�d�t�T�]�E�6�*�ex
�f�q�#�Y��u�%�gx
�h�r�4�[�%��'�ix
�j�r�4�[�%��'�kx
�l�s�D�\�5�%�(�mx
�n�s�D�\�5�%�(�ox
�	�r)2�$�H�H����x��;�� � ���!7��B�<�;�)2�;�;�s�c-�-
c<	c�F�/[S5SS4P[S5SS4P[S5SS4P[S5SS	4P[S
5SS4P[S5SS
4P[S5SS4P[S5SS4P[S5SS4P[S5SS4P[S5SS4P[S5SS4P[S5SS4P[S5SS4P[S5SS 4P[S!5S"S#4P[S$5S"S#4P[S%5S"S&4P[S'5S"S&4P[S(5S"S)4P[S*5S"S)4P[S+5S"S,4P[S-5S"S,4P[S.5SS/4P[S05SS14P[S25SS34P[S45SS54P[S65SS74P[S.5S8S94P[S05S8S04P[S25S8S24P[S45S8S44P[S65S8S:4P[S5S;S4P[S5S;S<4P[S=5S>S?4P[S@5SASB4P[SC5SASD4P[SE5SASF4P[SG5SASH4P[SG5SISJ4P[SK5SASL4P[SK5SISM4P[S@5SNSB4P[SC5SNSD4P[SE5SNSF4P[SG5SNSH4P[SG5SOSJ4P[SK5SNSL4P[SP5SQSR4P[SSSTSU-5SVSW4PnUH9up#nURX#SX9 UR[X#5U5 SSS5 M; g!,(df   MM=f)YNz0.000012345678z.6gz1.23457e-05z
0.00012345678z0.000123457z0.0012345678z
0.00123457z0.012345678z	0.0123457z
0.12345678z0.123457z	1.2345678z1.23457z	12.345678z12.3457z	123.45678z123.457r�z1234.57z	12345.678z12345.7z	123456.78�123457z	1234567.8r�z
9.99999e+2z.4g�1000z
9.99999e-8z1e-07z
9.99999e+8z1e+09z-0.115z.2gz-0.12z-0.125z-0.135z-0.14z-0.145z0.115r�z0.125z0.135z0.14z0.145rr�z123.400z123.4z123.000�123z120.000�120�12000000z1.2e+07z#.6gz0.00000z1.20000e+07z.6Gz1.23457E+06r^rTz3.14159z0.000031415z.0gz3e-05z
0.00031415z0.0003z0.31415z0.3z3.1415r�z#.0gr�z31.415z3e+01z3.e+01z.1gz#.1glz_.25g�18_446_744_073_709_551_616rFrCrz�zgz-3.09169e-85r�r�r�s     r�test_format_g_presentation_type�,FractionTest.test_format_g_presentation_type�s���=
�
��
 �%��7�=
�
��
��
�6�=
��~�
��|�4�=
��}�
�u�k�2�	=
�
�|�_�e�Z�0�=
��{�^�U�I�.�
=
��{�^�U�I�.�=
��{�^�U�I�.�=
��{�^�U�I�.�=
��{�^�U�I�.�=
��{�^�U�H�-�=
��{�^�U�M�2�=
��|�_�e�V�,�=
��|�_�e�W�-�=
� �|�_�e�W�-�!=
�$�x�[�%��)�%=
�&�x�[�%��)�'=
�(�x�[�%��)�)=
�*�x�[�%��)�+=
�,�w�Z���'�-=
�.�w�Z���'�/=
�0�w�Z���'�1=
�2�w�Z���'�3=
�6�q�T�5�#��7=
�8�y�\�5�'�*�9=
�:�y�\�5�%�(�;=
�<�y�\�5�%�(�==
�>�z�]�E�9�-�?=
�B�q�T�6�9�%�C=
�D�y�\�6�9�-�E=
�F�y�\�6�9�-�G=
�H�y�\�6�9�-�I=
�J�z�]�F�M�2�K=
�N�{�^�U�I�.�O=
�P�{�^�U�M�2�Q=
�T�~�
��Y�/�U=
�X�}�
�u�g�.�Y=
�Z�|�_�e�X�.�[=
�\�y�\�5�%�(�]=
�^�x�[�%��%�_=
�`�x�[�&�$�'�a=
�b�x�[�%��)�c=
�d�x�[�&�(�+�e=
�f�}�
�u�g�.�g=
�h�|�_�e�X�.�i=
�j�y�\�5�%�(�k=
�l�x�[�%��%�m=
�n�x�[�&�$�'�o=
�p�x�[�%��)�q=
�t�u�X�w� <�=�u=
�x�r�1�c�6�]�D�.�1�y=
�	�|)2�$�H�H����x��;�� � ���!7��B�<�;�)2�;�;�s�(L�
L 	c�t�[SS5nUR[5 [US5 SSS5 /SQnUHDnUR	US9 UR[
5 [X5 SSS5 SSS5 MF g!,(df   N]=f!,(df   N,=f!,(df   Mz=f)Nr�rE)�Q6fzX>010fzX<010fzX^010fzX=010fz0>010fz0<010fz0^010fz0=010fz>010fz<010fz^010fz=010ez=010fz=010gz=010%z>00.2fz>00f�006fz.010fz.02fz.000fz.ez.fz.gz.%zZ.2fz�05)r�)rrXrr�r�rc)rr��
invalid_specsr�s    r�test_invalid_formats�!FractionTest.test_invalid_formats�s����Q��7��
�
�
�y�
)��8�T�"�*�%
�
�L"�D����4��(��&�&�z�2��8�*�3�)�(�"�S*�
)��V3�2��)�(�s/�
B�B(�%B�1B(�
B�
B%�!B(�(
B7	c�6�[[SS9nUGHWnURS5(aMUR5nU(dM5[	[
RUR
S55up4UR
5upVUS:XaMzUSSnURXVS9 [[U55nUR[X�5U5 U(a UR[U*U5SU-5 [U5nUR[[X�55[U55 UR[[U*U55[SU-55 SSS5 GMZ SSS5 g!,(df   GMu=f!,(df   g=f)	Nzutf-8)�encodingz--z->z%rr�)�fmt�argr�)�open�format_testfile�
startswith�stripr3r8�splitr�rrr)r�)	r�testfile�line�lhs�rhsr�r��fmt2r�s	         r�test_float_format_testfile�'FractionTest.test_float_format_testfile"s6��
�/�G�
4�� ���?�?�4�(�(���z�z�|�����s�y�y�$�*�*�T�*:�;����9�9�;����$�;���1�2�w���\�\�c�\�3��%��*�
�A��$�$�V�A�_�c�:���(�(����D�)9�3��9�E��#��A��$�$�U�6�!�?�%;�U�3�Z�H��$�$�U�6�1�"�d�+;�%<�e�C�#�I�>N�O�4�3�!�5�
4�4�3��5�
4�s%�BF
� CE7�!
F
�7
F�	F
�

Fc���[SS5nSnSnUR[US-[RX5 UR[US-[R
X5 UR[US-[X5 UR[US-[RX!5 UR[US	-[R
X!5 UR[US
-[X!5 g)Nr�r�rVz1unsupported operand type(s) for %s: '%s' and '%s')�%rXr)�//rXr)�divmod()rXr)r�rrX)r�rrX)r�rrX)rr?rr%r3�floordivr)rrurvr:s    r�test_complex_handling�"FractionTest.test_complex_handling:s���
�a��G����E��� � ��!(�+G�!G�!)���q�	5�	
� � ��!(�+H�!H�!)�!2�!2�A�	:�	
� � ��!(�+N�!N�!'��	/�	
� � ��!(�+G�!G�!)���q�	5�	
� � ��!(�+H�!H�!)�!2�!2�A�	:�	
� � ��!(�+N�!N�!'��	/rr<N)7rErFrGrHr-r4r?rYrrerlr�r�r�r�r�r�r�r�r�r�r�rrrrr"r*r.r4r8r<r?rBrErNrQrTrXr[r`rkrwr}r�r�r�r�r�r�r�r�r�r�rKr<rrr'r's3��+�
Q�
;�1�2�;��;�=�f$�PU�*(� �8-�01�=�+�9�0,� ,�D"&�HA�!+�F 
�D
@�K�<O�:*K�X1I�f9�	,�8�@
,�5�$6�":�3�$3�,�	8�+�/�
1�?�
5�,0C�d8C�t}C�~BC�H.+�`�P��P�./rr'�__main__)5rI�cmath�decimalr�test.supportrrrPrr%rWr�osrdr��unittestrrr�rr	rXr�path�dirname�__file__�curdir�test_dir�joinr��objectrrMrjrqrwryr��Realrr��Complexr�rr�r�rrr%�TestCaser'rE�mainr<rr�<module>rs���!���E������	�
�
���
��
�����7�7�?�?�8�$�1��	�	���'�'�,�,�x��5P�Q�����@8�F�8�@A�I�&�&�A�(�A�&<�&<�P	�8�	������l�#�	�h�	�������)�-V�-V�\�����#��L�L�:�����d��F�F�6�������D�D�8�������	�$��	�t/�8�$�$�t/�n)�z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit