Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_fractions.cpython-311.opt-2.pyc
�

�Ke����N�	ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZm
Z
ddlZddlmZmZejZGd�de��ZGd�d	e��ZGd
�dej��Zd�ZGd
�dej��Zedkrej��dSdS)�)�Decimal)�requires_IEEE_754N)�copy�deepcopy)�dumps�loadsc�J�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZeZd
S)�
DummyFloatc�\�t|t��std���||_dS)Nz-DummyFloat can only be initialized from float)�
isinstance�float�	TypeError�value��selfrs  �=/usr/local/apps/python3/lib/python3.11/test/test_fractions.py�__init__zDummyFloat.__init__s/���%��'�'�	M��K�L�L�L���
�
�
�c���t|tj��r)|t�|j��|��St|t��r||j|j��StS�N)r�numbers�Rational�F�
from_floatrr
�NotImplemented)r�other�ops   r�_richcmpzDummyFloat._richcmpse���e�W�-�.�.�	"��2�a�l�l�4�:�.�.��6�6�6�
��z�
*�
*�	"��2�d�j�%�+�.�.�.�!�!rc�B�|�|tj��Sr)r�operator�eq�rrs  r�__eq__zDummyFloat.__eq__#���D�M�M�%���$E�$E�Erc�B�|�|tj��Sr)rr �ler"s  r�__le__zDummyFloat.__le__$r$rc�B�|�|tj��Sr)rr �ltr"s  r�__lt__zDummyFloat.__lt__%r$rc�B�|�|tj��Sr)rr �ger"s  r�__ge__zDummyFloat.__ge__&r$rc�B�|�|tj��Sr)rr �gtr"s  r�__gt__zDummyFloat.__gt__'r$rc��dSr��rs r�	__float__zDummyFloat.__float__*����rc��dSrr2r"s  r�__sub__zDummyFloat.__sub__.r5rN)
�__name__�
__module__�__qualname__rrr#r'r*r-r0r4r7�__rsub__r2rrr
r
s�������B����
"�"�"�F�E�E�E�E�E�E�E�E�E�E�E�E�E�E�H�H�H�F�F�F��H�H�Hrr
c�:�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�
DummyRationalc�X�tj||��}||z|_||z|_dSr)�math�gcd�num�den)rrArB�gs    rrzDummyRational.__init__6s-���H�S�#�����!�8����!�8����rc��t|tj��r |j|jko|j|jkStSr)r�	fractions�FractionrA�
_numeratorrB�_denominatorrr"s  rr#zDummyRational.__eq__;sC���e�Y�/�0�0�	"��H�� 0�0�3��H�� 2�2�
4�"�!rc�B�|j|jz|j|jzkSr�rArHrBrGr"s  rr*zDummyRational.__lt__B�!���x�%�,�,�t�x�%�:J�/J�J�Krc�B�|j|jz|j|jzkSrrJr"s  rr0zDummyRational.__gt__ErKrc�B�|j|jz|j|jzkSrrJr"s  rr'zDummyRational.__le__H�!���x�%�,�,���5�;K�0K�K�Lrc�B�|j|jz|j|jzkSrrJr"s  rr-zDummyRational.__ge__KrNrc��dSrr2r3s rr4zDummyRational.__float__Pr5rN)
r8r9r:rr#r*r0r'r-r4r2rrr=r=3s�������K����
"�"�"�L�L�L�L�L�L�M�M�M�M�M�M�
8�8�8�8�8rr=c��eZdZdS)�
DummyFractionN)r8r9r:r2rrrRrRSs������@�@rrRc��|j|jfSr)�	numerator�denominator)�rs r�_componentsrWWs��
�K���'�'rc��eZdZd�Zd�Zd�Zd�Zed���Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%S)&�FractionTestc��	|�t|��t|����|�||��dSr)�assertEqual�type�r�expected�actuals   r�assertTypedEqualszFractionTest.assertTypedEquals]sC��B�����h����f���6�6�6�����6�*�*�*�*�*rc	���	|�||��|�ttt|����ttt|������dSr)�assertTupleEqual�assertListEqual�list�mapr\r]s   r�assertTypedTupleEqualsz#FractionTest.assertTypedTupleEqualsbs[��P����h��/�/�/����T�#�d�H�"5�"5�6�6��S��v�=N�=N�8O�8O�P�P�P�P�Prc��		||i|��|�d|jz��dS#|$r.}|�|t|����Yd}~dSd}~wwxYw)Nz
%s not raised)�failr8r[�str)r�exc_type�message�callable�args�kwargs�es       r�assertRaisesMessagez FractionTest.assertRaisesMessagegs���N�	;��H�d�%�f�%�%�%�
�I�I�o��(9�9�:�:�:�:�:���	.�	.�	.����W�c�!�f�f�-�-�-�-�-�-�-�-�-�����	.���s�*�A�#A�Ac��|�dtt������|�dttd������|�dtttdd��������|�dttdd������|�dttdd������|�d	ttd
d
������|�dttdd
������|�dttdd������|�dttd������|�dtttdd��d������|�dttdtdd��������|�dtttdd��tdd��������|�tdtdd��|�ttd��|�ttd d��|�ttdd!��|�ttdd"��|�ttddd��dS)#N�r�)�rsrt�rt�rv)���rsrwrs)rsrs���)rs���
)rt�r|)�m+?�Rrsr})rv�M�)���rzry����	)i�	i�	��c�qzFraction(12, 0)�ry�?@�3/2yy�?)r[rWrrp�ZeroDivisionError�assertRaisesrr3s r�testInitzFractionTest.testInitqs��������Q�S�S�!1�!1�2�2�2������Q�q�T�T�!2�!2�3�3�3������Q�q��A�w�w�Z�Z�!8�!8�9�9�9�����+�a��A�h�h�"7�"7�8�8�8�����+�a��2�h�h�"7�"7�8�8�8������Q�r�2�Y�Y�!7�!7�8�8�8������Q�q�"�X�X�!6�!6�7�7�7�����+�a��2�h�h�"7�"7�8�8�8�����k�!�F�)�)�&<�&<�=�=�=�����+�a��!�Q����n�n�"=�"=�>�>�>�����+�a��1�S�!�9�9�o�o�">�">�?�?�?�����{�1�Q�r�1�X�X�q��c�{�{�3K�3K�'L�'L�M�M�M�� � �!2�4E�!"�B��	+�	+�	+����)�Q��1�1�1����)�Q��q�1�1�1����)�Q��2�.�.�.����)�Q��2�.�.�.����)�Q��1�a�0�0�0�0�0rc�:�|�dttd������|�dttd������|�dttd������|�tttd����|�tttd����|�tttd	����dS)
N)rzry�@rr��)��L�33fl皙�����?�nan�inf�-inf)r[rWrr��
ValueErrorr
�
OverflowErrorr3s r�testInitFromFloatzFractionTest.testInitFromFloat�s��������Q�s�V�V�!4�!4�5�5�5������Q�t�W�W�!5�!5�6�6�6����>�$�Q�s�V�V�,�,�	.�	.�	.�	
���*�a��u���6�6�6����-��E�%�L�L�9�9�9����-��E�&�M�M�:�:�:�:�:rc
���|�dtttd��������|�dtttd��������|�dtttd��������|�t
ttd����|�t
ttd����|�tttd	����|�tttd
����dS)N)rr{z1.1)rt��z3.5e-2rrz.000e20r��snanr�r�)r[rWrrr�r�r�r3s r�testInitFromDecimalz FractionTest.testInitFromDecimal�s������$�Q�w�u�~�~�%6�%6�7�7�	9�	9�	9�����$�Q�w�x�'8�'8�%9�%9�:�:�	<�	<�	<�����$�Q�w�y�'9�'9�%:�%:�;�;�	=�	=�	=�	
���*�a�����8�8�8����*�a�����9�9�9����-��G�E�N�N�;�;�;����-��G�F�O�O�<�<�<�<�<rc�<�|�dttd������|�dttd������|�dttd������|�dttd������|�dttd	������|�d
ttd������|�dttd
������|�dttd������|�dttd������|�dttd������|�dttd������|�dttd������|�dttd������|�dttd������|�dttd������|�dttd������|�dttd ������|�d!ttd"������|�d#ttd$������|�d#ttd%������|�td&td'��|�t
d(td)��|�t
d*td+��|�t
d,td-��|�t
d.td/��|�t
d0td1��|�t
d2td3��|�t
d4td5��|�t
d6td7��|�t
d8td9��|�t
d:td;��|�t
d<td=��|�t
d>td?��|�t
d@tdA��|�t
dBtdC��|�t
dDtdE��|�t
dFtdG��|�t
dHtdI��|�t
dJtdK��|�t
dLtdM��|�t
dNtdO��|�t
dPtdQ��|�t
dRtdS��|�t
dTtdU��dV}|�t
dW|zdXzt|��|�t
dY|zdXztdZ|z��|�t
d[|zdXztd\|z��|�t
d]|zdXztd^|z��dS)_N)rzrs�5)rvryr�z 
  +3/2)���ryz-3/2  )�
ryz    013/02 
  )�rzz 3.2 )i�rzz -3.2 )r�rsz -3. )rvrzz .6 )rsi5z32.e-5)i@Brsz1E+06)i���rsz-1.23e4rrz .0e+0	z-0.000e0)�{rs�1_2_3)�)�kz1_2_3/3_2_1)�i�z3.14_15)r�l@�9�Hz3.14_15e-1_0)�e�dz1.01z1.0_1zFraction(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'�3a2z%Invalid literal for Fraction: '3/7.2'z3/7.2z%Invalid literal for Fraction: '3.2/7'z3.2/7z!Invalid literal for Fraction: '.'�.z!Invalid literal for Fraction: '_'�_z"Invalid literal for Fraction: '_1'�_1z$Invalid literal for Fraction: '1__2'�1__2z"Invalid literal for Fraction: '/_'z/_z#Invalid literal for Fraction: '1_/'z1_/z#Invalid literal for Fraction: '_1/'z_1/z%Invalid literal for Fraction: '1__2/'z1__2/z#Invalid literal for Fraction: '1/_'z1/_z$Invalid literal for Fraction: '1/_1'z1/_1z&Invalid literal for Fraction: '1/1__2'z1/1__2z&Invalid literal for Fraction: '1._111'z1._111z&Invalid literal for Fraction: '1.1__1'z1.1__1z'Invalid literal for Fraction: '1.1e+_1'z1.1e+_1z)Invalid literal for Fraction: '1.1e+1__1'z	1.1e+1__1�399999999999999999999999999999999999999999999999999_zInvalid literal for Fraction: '�'z!Invalid literal for Fraction: '1/z1/z!Invalid literal for Fraction: '1.z1.z$Invalid literal for Fraction: '1.1+ez1.1+e)r[rWrrpr�r�)r�vals  r�testFromStringzFractionTest.testFromString�s'�������Q�s�V�V�!4�!4�5�5�5������Q�u�X�X�!6�!6�7�7�7������Q�{�^�^�!<�!<�=�=�=�����+�a��k�k�":�":�;�;�;�����+�a�0A�.B�.B�"C�"C�D�D�D�����+�a��j�j�"9�"9�:�:�:�����;�q��{�{�#;�#;�<�<�<�����+�a��j�j�"9�"9�:�:�:������Q�v�Y�Y�!7�!7�8�8�8�����K��(���$<�$<�=�=�=�����{�1�W�:�:�'>�'>�?�?�?�����k�!�I�,�,�&?�&?�@�@�@������Q�z�]�]�!;�!;�<�<�<������Q�z�]�]�!;�!;�<�<�<�����;�q��z�z�#:�#:�;�;�;�����K��-�0@�0@�$A�$A�B�B�B�����{�1�Y�<�<�'@�'@�A�A�A����)�;�q��7H�7H�+I�+I�J�J�J�����[��6���%;�%;�<�<�<�����[��7���%<�%<�=�=�=�� � ��/�
�u�	�	�	�	
� � ��<�
�t�	�	�	�	
� � ��<�
�t�	�	�	�	
� � ��>�
�v�	�	�	�	
� � ��>�
�v�	�	�	�	
� � ��?�
�w�	�	�	�	
� � ��=�
�u�	�	�	�	
� � ��?�
�w�	�	�	�	
� � ��?�
�w�	�	�	�	
� � ��;�
�s�	�	�	�	
� � ��;�
�s�	�	�	�	
� � ��<�
�t�	�	�	�	
� � ��>�
�v�	�	�	�	
� � ��<�
�t�	�	�	�	
� � ��=�
�u�	�	�	�	
� � ��=�
�u�	�	�	�	
� � ��?�
�w�	�	�	�	
� � ��=�
�u�	�	�	�	
� � ��>�
�v�	�	�	�	
� � ��@�
�x�	�	�	�	
� � ��@�
�x�	�	�	�	
� � ��@�
�x�	�	�	�	
� � ��A�
�y�	�	�	�	
� � ��C�
�{�	�	�	���� � ��9�C�?�#�E�
�s�	�	�	�	
� � ��;�c�A�C�G�
�t�c�z�	�	�	�	
� � ��;�c�A�C�G�
�t�c�z�	�	�	�	
� � ��>��D�s�J�
�w��}�	�	�	�	�	rc��tdd��}|�dd��|�dt|����|�t
t|dd��|�t
t|dd	��|�dt|����d
|_d|_|�dt|����|�	td
d��|��dS)Nrtrvryr|rurTr�rU��)r�ry)
rrr[rWr��AttributeError�setattrrGrH�assertNotEqual�rrVs  r�
testImmutablezFractionTest.testImmutables���
�a��G�G��	�
�
�1�b���������Q���0�0�0����.�'�1�k�2�F�F�F����.�'�1�m�Q�G�G�G������Q���0�0�0������������Q���0�0�0����A�a��G�G�Q�'�'�'�'�'rc��|�ttjd��|�dtt�d������d}|�|dftt�|������|�dtt�d������|�dtt�d������|�d	tt�d
������|�dtt�d������|�t
d
��t
t�d������|�dtt�d������|�dt
t�d������d}||z
}|�tdtj|��|�tdtj|��|�tdtj|��dS)N�@@)r{rsr{l�{�C	rsrrr��$@)���ryg�)ll+?�Rrs�J��-�Dr})r�l g������	@g��(cannot convert Infinity to integer ratio�#cannot convert NaN to integer ratio)
r�rrrr[rWr
rpr�r�)r�bigintr�r�s    r�
testFromFloatzFractionTest.testFromFloat%sB�����)�Q�\�4�8�8�8�����+�a�l�l�2�.>�.>�"?�"?�@�@�@�$�����&�!��k�!�,�,�v�2F�2F�&G�&G�H�H�H������Q�\�\�$�-?�-?�!@�!@�A�A�A�����+�a�l�l�4�.@�.@�"A�"A�B�B�B�����+�a�l�l�4�.@�.@�"A�"A�B�B�B����5�$�Q�\�\�$�%7�%7�8�8�	:�	:�	:�����v����a�l�l�4�.@�.@�(A�(A�B�B�B����=�$�Q�\�\�#�%6�%6�7�7�	9�	9�	9�����e�A�L�L��$5�$5�6�6�7�7�7����C�i��� � ��E�
�L�#�	�	�	�	
� � ��E�
�L�3�$�	 �	 �	 �	
� � ��=�
�L�#�	�	�	�	�	rc�F�|�ttjd��|�tdd��t�d����|�td��t�td������|�tdd��t�td������|�tdd��t�td	������|�td
��t�td������|�dtdd��z
t�td
������|�tdtjtd����|�tdtjtd����|�tdtjtd����|�tdtjtd����dS)Nr�r{rsrz-0rzz0.5i�z5e-3i��5e3l�7�3M�e'z 0.999999999999999999999999999999r�r�r�r�r�r�)	r�rr�from_decimalr[rrpr�r�r3s r�testFromDecimalzFractionTest.testFromDecimalAs�����)�Q�^�T�:�:�:�����2�q���1�>�>�"�#5�#5�6�6�6�����1���q�~�~�g�d�m�m�<�<�=�=�=�����1�b���1�>�>�'�%�.�.�#A�#A�B�B�B�����1�d���Q�^�^�G�F�O�O�%D�%D�E�E�E�����4���!�.�.�����"@�"@�A�A�A�����Q�q�&�\�\�)������(@�(@�A�A�	C�	C�	C�	
� � ��E�
�N�G�E�N�N�	,�	,�	,�	
� � ��E�
�N�G�F�O�O�	-�	-�	-�	
� � ��=�
�N�G�E�N�N�	,�	,�	,�	
� � ��=�
�N�G�F�O�O�	-�	-�	-�	-�	-rc��|�tdd�����d��|�tdd�����d��|�tdd�����d��|�tdd�����d��dS)	Nr�r�)ryrv���)rxrvi����rrr)r[r�as_integer_ratior3s r�test_as_integer_ratioz"FractionTest.test_as_integer_ratioYs�������1�a���1�1�3�3�V�<�<�<�����2�q���2�2�4�4�g�>�>�>�����1�b���2�2�4�4�g�>�>�>�����1�a���1�1�3�3�V�<�<�<�<�<rc���td��}|�|�d��tdd����|�|�d��tdd����|�|�d��tdd����|�|�d��tdd����|�td	d
���d��td����|�td	d
���d
��tdd
����|�td���d��td����dD]1}|�tdtd��j|���2dS)Nz3.1415926535897932i'r�r�i�����piM�j��r�r�rsr��fr)rrwz$max_denominator should be at least 1)rr[�limit_denominatorrpr�)r�rpi�is   r�testLimitDenominatorz!FractionTest.testLimitDenominator_s����$�%�%������.�.�u�5�5�q��c�{�{�C�C�C����#�/�/��6�6�6��$����E�E�E�����.�.�s�3�3�Q�s�C�[�[�A�A�A�����.�.�s�3�3�Q�s�C�[�[�A�A�A�����3����6�6�s�;�;�Q�q�T�T�B�B�B�����3����6�6�s�;�;�Q�s�C�[�[�I�I�I�����1���/�/��6�6��!���=�=�=��	+�	+�A��$�$��B��!���&��
+�
+�
+�
+�	+�	+rc��|�dtjtdd������|�dtjtdd������|�dtjtdd������|�dtjtdd������|�dtjtdd������|�dt
tdd������|�dttdd������|�dttd	d������|�dttd
d������|�dttdd������|�dttdd������|�d
ttdd������|�dttdd������|�ttt
d����|�
dttt
d��t
d��������|�dttdd������dS)Nrwi����r{rsrrxr�rr������FTrvryr���22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222227gUUUUUU�?��33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331��������?)r`r?�truncr�floor�ceil�int�roundr[�boolr
r�r��assertAlmostEqual�complexr3s r�testConversionszFractionTest.testConversionsms������r�4�:�a��R�j�j�#9�#9�:�:�:����q�$�*�Q�r�2�Y�Y�"7�"7�8�8�8����r�4�:�a��R�j�j�#9�#9�:�:�:����r�4�9�Q�s�B�Z�Z�#8�#8�9�9�9����r�4�9�Q�s�B�Z�Z�#8�#8�9�9�9����r�3�q��b�z�z�?�?�3�3�3����q�%��"�b�	�	�"2�"2�3�3�3����q�%��"�b�	�	�"2�"2�3�3�3����r�5��3����#4�#4�5�5�5����r�5��2�r���#3�#3�4�4�4������Q�q�!�W�W�
�
�.�.�.�����t�A�a��G�G�}�}�-�-�-����s�E�!�A�r�(�(�O�O�4�4�4�	
���-���K�0@�0@�A�A�A����u�$�Q�s�;�'7�'7��[�9I�9I�%J�%J�K�K�	M�	M�	M�	
���v�w�q��2�w�w�'7�'7�8�8�8�8�8rc��tdd��}|�|tj��|�t|��d��|�t
t|����t
��dS)Nrvryrs)r�assertIsInstance�typing�SupportsIntr[r�r\)r�fs  r�testSupportsIntzFractionTest.testSupportsInt�sl��
�a��G�G�����a��!3�4�4�4�����Q����#�#�#�����c�!�f�f���s�+�+�+�+�+rc����G�fd�dt���t�d���d����}|�|j���|�|j���|�|t
j��|�t|��d��|�tt|����t��dS)Nc�V��eZdZ	ed���Ze�fd���Z�fd�Z�fd�ZdS)�:FractionTest.testIntGuaranteesIntReturn.<locals>.CustomIntc��|Srr2r3s rrTzDFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.numerator�s���rc����d��S�Nrsr2)r�	CustomInts �rrUzFFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.denominator�s��� �y��|�|�#rc�T���t|��t|��z��Sr�r��rrr�s  �r�__mul__zBFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__mul__�s$��� �y��T���S��Z�Z�!7�8�8�8rc�T���t|��t|��z��Srr�r�s  �r�__floordiv__zGFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__floordiv__�s$��� �y��T���c�%�j�j�!8�9�9�9rN)r8r9r:�propertyrTrUr�r�)r�s�rr�r��s��������
��
�
��X�
��
$�
$�
$�
$��X�
$�
9�
9�
9�
9�
9�
:�
:�
:�
:�
:�
:�
:rr�r�rzry)	r�rr�rTrUr�r�r[r\)rr�r�s  @r�testIntGuaranteesIntReturnz'FractionTest.testIntGuaranteesIntReturn�s����
	:�	:�	:�	:�	:�	:�	:��	:�	:�	:�*
�i�i��m�m�Y�Y�q�\�\�*�*�����a�k�9�5�5�5����a�m�Y�7�7�7����a��!3�4�4�4�����Q����#�#�#�����c�!�f�f���s�+�+�+�+�+rc��tjGd�d����}tj�|��|d��}t|��}|�|j|��|�t|��d��|d��}t|��}|�t|��d��dS)Nc�>�eZdZdZd�Zd�Zed���Zd�ZeZ	dS)�=FractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValuersc��||_dSr)rrs  rrzFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__init__�s
��"��
�
�
rc�*�t|j��Sr)r�rr3s r�__bool__zFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__bool__�s���D�J�'�'�'rc��|Srr2r3s rrTzGFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.numerator�s	���rc� �td���)Nz&Avoid comparisons in Fraction.__bool__)�AssertionErrorr"s  rr#zDFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__eq__�s��$�%M�N�N�NrN)
r8r9r:rUrr�r�rTr#r*r2rr�CustomValuer��se�������K�
#�
#�
#�
(�
(�
(��
�
��X�
�
O�
O�
O��F�F�Frr�rsTrF)	�	functools�total_orderingrr�registerr�assertIsrTr�)rr�rTrVs    r�testBoolGuarateesBoolReturnz(FractionTest.testBoolGuarateesBoolReturn�s���
�	!�	�	�	�	�	�	�	�
"�	!�	�(	��!�!�+�.�.�.��K��N�N�	�
�i�L�L���
�
�a�k�9�-�-�-��
�
�d�1�g�g�t�$�$�$��K��N�N�	�
�i�L�L���
�
�d�1�g�g�u�%�%�%�%�%rc	�z�|�td��ttd��d����|�td��ttd��d����|�td��ttd��d����|�tdd��ttd	d
��d����|�tdd��ttdd
��d����dS)
Ni8���ij���rxi�����rwr{r�r�rsi��)r`rr�r3s r�	testRoundzFractionTest.testRound�s������q��w�w��a��g�g�r�(:�(:�;�;�;����q��w�w��a��g�g�r�(:�(:�;�;�;����q��u�u�e�A�b�E�E�2�&6�&6�7�7�7����q��R�y�y�%��#�s���Q�*?�*?�@�@�@����q��R�y�y�%��#�s���Q�*?�*?�@�@�@�@�@rc
��|�tdd��tdd��tdd��z��|�tdd��tdd��tdd��z
��|�tdd��tdd��tdd��z��|�tdd��tdd��tdd	��z��|�tdd	��tdd��tdd��z��|�td
d��tdd	��tdd��z��|�dtd
d��tdd��z��|�dtdd��td��z��|�tdd��tdd��tdd��z��|�tdd��tdd��tdd��z��|�td��tdd��fttdd��tdd������|�td��tdd��fttdd��tdd������|�tdd��tdd��td��z��|�tdd��tdd��td��z��|�dtd	��tdd��z��|�tdd��tdd��
��t	td��tdd����}|�|jd��|�|jd��tdd��dz}|�|tdd����|�|jd��|�|j	d��tdd��dz}|�|tdd����|�|jd��|�|j	d��tdd��dz}|�|td	d����|�|jd	��|�|j	d��dS)Nrsryr{rzr��r�rvr�r��rxr�r}rtr���@rwr)
r[rr`�divmod�powr��real�imagrTrU)r�z�ps   r�testArithmeticzFractionTest.testArithmetic�s�������1�a���!�A�r�(�(�Q�q�!�W�W�"4�5�5�5�����2�r���A�a��H�H�q��A�w�w�$6�7�7�7�����1�b���1�Q��8�8�a��1�g�g�#5�6�6�6�����1�a���!�A�q�'�'�A�a��G�G�"3�4�4�4�����1�a���!�A�r�(�(�Q�q�!�W�W�"4�5�5�5�����3����A�a��G�G�a��A�h�h�$6�7�7�7����q�!�A�r�(�(�a��1�g�g�"5�6�6�6����v�q���|�|�q��t�t�';�<�<�<�����1�a���!�A�q�'�'�A�a��G�G�"3�4�4�4�����1�a���!�B��(�(�Q�q�!�W�W�"4�5�5�5����!�A�$�$��!�Q����&��1�a���!�A�q�'�'�*B�*B�C�C�C����!�B�%�%��1�a���)�6�!�B��(�(�A�a��G�G�+D�+D�E�E�E�����1�b���1�Q��7�7�a��d�d�?�3�3�3�����2�q���1�Q��7�7�a��e�e�#3�4�4�4����s�A�a�D�D�A�a��G�G�O�4�4�4�����1�a���1�Q��7�7�(�+�+�+���"���q��A�w�w�������q�v�q�)�)�)�������#�#�#�
�b�!�H�H��M������A�a��G�G�$�$�$������a�(�(�(�������*�*�*�
�b�!�H�H��N������A�b�!�H�H�%�%�%������b�)�)�)�������*�*�*�
�b�!�H�H��N������A�a��G�G�$�$�$������a�(�(�(�������*�*�*�*�*rc�Z�|�tdd��tddzdzd��tdddzdz
��z��|�tdd��td	d
zd��tdd	d
z��z��|�d
tdd��fttddzdzd��tdddzdz
������|�d	dzdztd	d
zd��tdd	d
z��z��|�dtdd	d
z��tdd	d
z��z��|�dtd	d	d
z��fttdd	d
z��tdd	d
z������|�d	dzdztdd��fttd	d
zd��tdd	d
z������dS)Nl�b;e�f�Op�Umn�P|�}�l�~J�w�5�PHyT#/jei�4�T�r{�#rslP��~�cegrtlryr�rvrzl��_�r�r|)r`rrfr
r3s r�testLargeArithmeticz FractionTest.testLargeArithmetic�sT�����
�C�K�
M�
M�
�b�"�f�Q�h��!�!�A�h��B��q��$9�$9�9�	
�	
�	
�
	
���
�a�0�1�1�
�q�#�v�g�q�M�M�A�a��C��L�L�(�	
�	
�	
�	
�#�#�
�
�D�L�N�N�
O�
�1�R��V�A�X�x�(�(�!�H�b�"�f�Q�h�*?�*?�@�@�		
�	
�	
�	
���
�#�X�I��O�
�q�#�v�g�q�M�M�Q�q�!�S�&�\�\�)�	
�	
�	
�	
���
�
�a��C��L�L�A�a��C��L�L�(�	
�	
�	
�	
���
��!�Q��V�����1�Q��3��<�<��1�a��f���.�.�	
�	
�	
�	
�#�#��3�h�Y�"�_�
�q�1�
2�
2�
4��1�a��f�W�a�=�=�!�A�q�#�v�,�,�/�/�	
�	
�	
�	
�	
rc
��|�tdd��tdd��dz��|�dtdd��dz��|�dtdd��dz��|�tdd��dtdd��z��|�ddtdd��z��|�ddtdd��z��|�tdd��tdd��dz
��|�d	tdd��dz
��|�d
tdd��dz
��|�tdd��dtdd��z
��|�ddtdd��z
��|�d
dtdd��z
��|�tdd��tdd��dz��|�dtdd��dz��|�dtdd��dz��|�tdd��dtdd��z��|�ddtdd��z��|�ddtdd��z��|�tdd��tdd��dz��|�dtdd��dz��|�dtdd��dz��|�tdd��dtdd��z��|�ddtdd��z��|�ddtdd��z��|�dtdd��dz��|�dtdd��dz��|�ddtdd��z��|�ddtdd��z��|�ddtdd��z��|�tdd��tdd��dz��|�dtdd��dz��|�tdd��dtdd��z��|�ddtdd��z��|�dtdd��td��z��|�td��tdd��td��z��|�td��tdd��td��z��|�dtdd��td��z��|�dtdd��ft	tdd��d����|�t	dd��t	tdd��d����|�dtd��ft	dtdd������|�t	dd��t	dtdd������|�t	dtd����t	tdd��td������|�t	dtd����t	tdd��td������|�t	dtd����t	tdd��td������|�t	dtd����t	tdd��td������|�tdd��tdd��dz��|�tdd��tdd��dz��|�dtdd��dz��|�dtdd��dz��|�ddtdd��z��tdtdd����}|�d|j��|�d|j	��|�tdd��dtdd��z��|�d dtdd��z��|�d!d tdd��z��|�ddtdd��z��|�
ttjtdd��d��dS)"Nrr{rsg�������?g�?y�������?y�?r�g�������y�������r�g�������?y�������?r�r�r�y$@r�r}l�d�&O�!g"@g�������?r�r�rwg��������r�rxryr�rg�?)
r`rr
rfr
rr�rr[rr�r�r )rrs  r�testMixedArithmeticz FractionTest.testMixedArithmetics
	�����q��R�y�y�!�A�r�(�(�Q�,�7�7�7����s�A�a��H�H�s�N�3�3�3����x��1�b���X�)>�?�?�?����q��R�y�y�!�a��2�h�h�,�7�7�7����s�C�!�A�r�(�(�N�3�3�3����x�(�a��2�h�h�)>�?�?�?����q��R�y�y�!�A�r�(�(�Q�,�7�7�7����t�Q�q�"�X�X��^�4�4�4����y�!�A�r�(�(�h�*?�@�@�@����q��B�x�x��Q�q�"�X�X��6�6�6����s�C�!�A�r�(�(�N�3�3�3����x�(�a��2�h�h�)>�?�?�?����q��B�x�x��1�b���A��6�6�6����s�A�a��H�H�s�N�3�3�3����x��1�b���X�)>�?�?�?����q��B�x�x��Q�q�"�X�X��6�6�6����s�C�!�A�r�(�(�N�3�3�3����x�(�a��2�h�h�)>�?�?�?����q��B�x�x��1�b���A��6�6�6����s�A�a��H�H�s�N�3�3�3����x��1�b���X�)>�?�?�?����q��Q�x�x��Q�q�"�X�X��6�6�6����t�S�1�Q��8�8�^�4�4�4����y�8�q��B�x�x�*?�@�@�@����q�!�A�r�(�(�a�-�0�0�0����s�A�a��H�H��O�4�4�4����r�1��!�R���=�1�1�1����v�v��1�b���'9�:�:�:����z�3�!�A�r�(�(�?�;�;�;����q��B�x�x��1�b���A��6�6�6����s�A�a��H�H�s�N�3�3�3����q��A�w�w��A�a��H�H��5�5�5����y�#��!�R���.�9�9�9����s�A�a��H�H�u�U�|�|�$;�<�<�<����u�V�}�}�a��2�h�h��v���.F�G�G�G����u�U�|�|�Q�r�2�Y�Y��u���-E�F�F�F����t�Q�r�2�Y�Y��v���%>�?�?�?��#�#�Q��!�R���M�6�!�A�r�(�(�A�3F�3F�G�G�G��#�#�F�3��$4�$4�f�Q�q�"�X�X�s�6K�6K�L�L�L��#�#�R��1���J��q�!�A�r�(�(�0C�0C�D�D�D��#�#�F�3��$4�$4�f�S�!�A�r�(�(�6K�6K�L�L�L��#�#�F�3��e���$=�$=�v�a��2�h�h�PU�V[�P\�P\�?]�?]�^�^�^��#�#�F�3��f�
�
�$>�$>��q��B�x�x�QV�W]�Q^�Q^�@_�@_�`�`�`��#�#�F�4��u���$>�$>��q��R�y�y�RW�X]�R^�R^�@_�@_�`�`�`��#�#�F�4��v���$?�$?���"�b�	�	�SX�Y_�S`�S`�Aa�Aa�b�b�b�	
���q��a�y�y�!�A�r�(�(�b�.�9�9�9����q��a�y�y�!�B��(�(�a�-�8�8�8����s�A�a��H�H��O�4�4�4����x��1�b���h�)?�@�@�@����q�1��!�Q���<�0�0�0���A�a��G�G�������q�!�&�)�)�)�����A�F�#�#�#����q��A�w�w��a��A�h�h��7�7�7����s�Q�!�A�q�'�'�\�2�2�2����t�S�A�b�!�H�H�_�5�5�5����x�(�q��B�x�x�)?�@�@�@����+�X�\��A�q�'�'�2�	'�	'�	'�	'�	'rc	��|�ttjt	dd��td����|�ttjtd��t	dd����dS)Nrvrz	3.1415926)r�rr �addrrr3s r�testMixingWithDecimalz"FractionTest.testMixingWithDecimalbsr�����)�X�\��A�b�'�'�7�;�#7�#7�	9�	9�	9����)�X�\�!�+�.�.��!�B���	9�	9�	9�	9�	9rc��|�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)Nrsryrv)�
assertTruer�assertFalser3s r�testComparisonszFractionTest.testComparisonsiso������!�Q���!�A�q�'�'�)�*�*�*�����1�a���1�Q��7�7�*�+�+�+�����!�Q���1�Q��7�7�*�+�+�+�����!�Q���1�Q��7�7�*�+�+�+�����1�a���A�a��G�G�+�,�,�,�����!�Q���1�Q��7�7�*�+�+�+�����1�a���A�a��G�G�+�,�,�,�����1�a���A�a��G�G�+�,�,�,�����!�Q���1�Q��7�7�*�+�+�+�+�+rc��|�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)Nrsryrvr�rt)rrr=rr3s r�testComparisonsDummyRationalz)FractionTest.testComparisonsDummyRationalts�������!�Q���=��A�#6�#6�6�7�7�7����
�a��+�+�q��A�w�w�6�7�7�7�����1�a���M�!�Q�$7�$7�7�8�8�8�����q�!�,�,��!�Q���7�8�8�8�����!�Q���-��1�"5�"5�5�6�6�6�����1�a���=��A�#6�#6�6�7�7�7�����1�a���=��A�#6�#6�6�7�7�7�����1�a���=��A�#6�#6�6�7�7�7�����1�a���=��A�#6�#6�6�7�7�7�����!�Q���-��1�"5�"5�5�6�6�6�����!�Q���=��A�#6�#6�6�7�7�7�����!�Q���=��A�#6�#6�6�7�7�7�����1�a���M�!�Q�$7�$7�7�8�8�8�����1�a���M�!�Q�$7�$7�7�8�8�8�����!�Q���=��A�#6�#6�6�7�7�7�����!�Q���=��A�#6�#6�6�7�7�7����
�a��+�+�a��1�g�g�5�6�6�6�����q�!�,�,�q��A�w�w�6�7�7�7�����q�!�,�,�q��A�w�w�6�7�7�7�����q�!�,�,�q��A�w�w�6�7�7�7�����q�!�,�,�q��A�w�w�6�7�7�7����
�a��+�+�a��1�g�g�5�6�6�6����
�a��+�+�q��A�w�w�6�7�7�7����
�a��+�+�q��A�w�w�6�7�7�7�����q�!�,�,��!�Q���7�8�8�8�����q�!�,�,��!�Q���7�8�8�8����
�a��+�+�q��A�w�w�6�7�7�7����
�a��+�+�q��A�w�w�6�7�7�7�7�7rc��td��}tdd��}|�||k��|�||kp||k��|�||k��|�||ko||k��|�||k��|�||kp||k��|�||k��|�||ko||k��dS)NgUUUUUU�?rsrv)r
rrr)r�x�ys   r�testComparisonsDummyFloatz&FractionTest.testComparisonsDummyFloat�s����u����
�a��G�G������Q���������A����Q��'�'�'�����a�� � � �����a��*�A��F�+�+�+�����Q���������A����Q��'�'�'�����a�� � � �����a��*�A��F�+�+�+�+�+rc���|�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)Nryrzr�rvrs�333333�?皙�����?��?r�r�rr{r�r�rt�r������rrrr
r3s r�
testMixedLesszFractionTest.testMixedLess�s�������A�a��G�G��$�$�$�����Q�q�!�W�W��%�%�%�����!�Q���!��$�$�$�����1�a���1��%�%�%�����!�Q���#�
�&�&�&�����1�a���3��'�'�'�����a��1�g�g�
�&�&�&�����q��A�w�w��'�'�'�����u����!�Q���/�0�0�0�����f�
�
��!�R���0�1�1�1�����u����"�a���0�1�1�1�����!�Q���%��,�,�.�/�/�/�����2�r���U�6�]�]�2�3�3�3�����3����u�U�|�|�3�4�4�4�4�4rc���|�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*rsryr(r)r�rvrzr�r�rr{r�r�rtr+r�r,r-r.r3s r�testMixedLessEqualzFractionTest.testMixedLessEqual�s�������q��A�w�w��'�'�'������!�Q����(�(�(�����!�Q���3��'�'�'�����1�a���C��(�(�(�����Q�q�!�W�W��%�%�%�����a��1�g�g��&�&�&�����!�Q���1��%�%�%�����1�a���A��&�&�&�����u����1�a���0�1�1�1�����f�
�
��1�b���1�2�2�2�����u����2�q���1�2�2�2�����!�Q���5��<�<�/�0�0�0�����2�r���e�F�m�m�3�4�4�4�����3�����e���4�5�5�5�5�5rc
���|�td��td��k��|�dtttjd��dz����k��|�dttjd��dz��k��|�dttjd��dz
��k��|�dttjd��dz
��k��|�dttjd��dz��k��dS)Nr}r�rs)rrr
r?r�rr3s r�testBigFloatComparisonsz$FractionTest.testBigFloatComparisons�s!������6���e�F�m�m�3�4�4�4������a��
�4�(8�(8�1�(<�&=�&=� >� >�>�?�?�?�����q���D�!1�!1�A�!5�6�6�6�7�7�7������4�:�d�#3�#3�a�#7�!8�!8�8�9�9�9�����q���D�!1�!1�A�!5�6�6�6�7�7�7������4�:�d�#3�#3�a�#7�!8�!8�8�9�9�9�9�9rc���|�td��td��k��|�tt
jtd��td����|�tt
jtd��td����tdd��}tdd��}tdd��}|�||k��|�||k��|�||k��|�||k��t
j	t
jt
jt
j
fD]v}|�t|||��|�t|||��|�t|||��|�t|||���wdS)Nr}rvr
g�?rg�������?)rrr�r�rr r/r&rr)r,)rr$r�wrs     r�testBigComplexComparisonsz&FractionTest.testBigComplexComparisons�s�������6���g�f�o�o�5�6�6�6����)�X�[�!�F�)�)�W�V�_�_�M�M�M����)�X�[�!�F�)�)�W�V�_�_�M�M�M�
�a��G�G���E�3�����E�3��������Q���������a�� � � �����a�� � � �����Q������+�x�{�H�K���D�	3�	3�B����i��Q��2�2�2����i��Q��2�2�2����i��Q��2�2�2����i��Q��2�2�2�2�		3�	3rc��|�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*rsryr(r)r�rvrzr�rtr�r�r.r3s r�testMixedEqualzFractionTest.testMixedEqual�s�������q��A�w�w��'�'�'������!�Q����(�(�(�����!�Q���3��'�'�'�����1�a���C��(�(�(�����Q�q�!�W�W��%�%�%�����a��1�g�g��&�&�&�����!�Q���1��%�%�%�����1�a���A��&�&�&�����1�a���E�%�L�L�0�1�1�1�����u����1�a���0�1�1�1�����1�a���E�%�L�L�0�1�1�1�����v���!�A�q�'�'�1�2�2�2�2�2rc	���|�dttdd������|�dttd������|�dttdd������|�d	ttdd������|�d
ttdd������dS)NzFraction(7, 3)rtrvz Fraction(6283185307, 2000000000)z3.1415926535z#Fraction(-1, 100000000000000000000)rsl���� F�x:^Vz7/3�7)r[�reprrrir3s r�testStringificationz FractionTest.testStringification�s������)�4��!�Q���=�=�9�9�9����;��a��/�/�0�0�	2�	2�	2����>��a��7�m�m�,�,�	.�	.�	.������A�a��G�G���-�-�-�����c�!�A�q�'�'�l�l�+�+�+�+�+rc	���tjj}tjj}|�td��tt
dd������|�tddz��tt
ddz������|�ttd����tt
d������|�|tt
d|������|�tt
d����t
d���	����dS)	Nr�rzryr{�2r}rsrw)
�sys�	hash_info�modulusr�r[�hashrr�r
�__hash__)r�hmod�hinfs   r�testHashzFractionTest.testHash�s���}�$���}� ������c���D��1�a���M�M�2�2�2�����b�"�f���t�A�b�"�f�I�I���7�7�7����D��v���/�/��a��i�i���A�A�A�����t�A�a��J�J�/�/�0�0�0�	
����a��e�e���a��e�e�n�n�&6�&6�7�7�7�7�7rc�\�td��}d|dddddf\}}}}}}}t||z
��tdd��krG|}||z|dz}}||z|dz}}||z|z}||z
}t||z
��tdd��k�G|�tj|��dS)Nrvrrs��ʚ;r
� )r�absr�r?�pi)	r�three�lasts�t�s�n�na�d�das	         r�testApproximatePizFractionTest.testApproximatePis����!����$%�u�a��A�q�"�$<�!��q�!�Q��A�r��!�e�)�n�n�q��E�{�{�*�*��E��b�D�"�Q�$�r�A��b�D�"�R�%�r�A��Q��!��A�
��F�A��!�e�)�n�n�q��E�{�{�*�*�	
���t�w��*�*�*�*�*rc��td��}ddtd��dddf\}}}}}}t||z
��tdd��krN|}|dz
}|||dz
zz}|||zz}|dz}|||z|zz
}t||z
��tdd��k�N|�tjd��|��dS)NrsrrIryrw)rrKr�r?�cos)rr$r�rNrP�factrA�signs        r�testApproximateCos1z FractionTest.testApproximateCos1s���
�a�D�D��'(�!�Q�q�T�T�1�a��':�$��5�!�T�3���!�e�)�n�n�q��E�{�{�*�*��E�
��F�A��A��1��I��D��1�q�5�L�C��B�J�D�
��t��d�"�"�A�
�!�e�)�n�n�q��E�{�{�*�*�	
���t�x��{�{�A�.�.�.�.�.rc
�\�tdd��}tdd��}tdtjdz��D]3}|�|t
t||�������4|�t|��tt|������|�t|��tt|������|�t|��tt|������|�t|��tt|������|�|t|����|�|t|����dS)Nr�rtrrs)
rrR�range�pickle�HIGHEST_PROTOCOLr[rr�idrrr�r`)rrV�dr�protos    r�test_copy_deepcopy_picklez&FractionTest.test_copy_deepcopy_picklesH��
�b�!�H�H��
�2�q�
!�
!���1�f�5��9�:�:�	8�	8�E����Q��e�A�u�o�o� 6� 6�7�7�7�7�����A����4��7�7���,�,�,�����A����8�A�;�;���0�0�0����B�r�F�F�B�t�B�x�x�L�L�1�1�1����B�r�F�F�B�x��|�|�$4�$4�5�5�5����r�4��8�8�,�,�,����r�8�B�<�<�0�0�0�0�0rc�l�tdd��}|�tt|dd��dS)Nr�rt�ar{)rr�r�r�r�s  r�
test_slotszFractionTest.test_slots(s1��
�b�!�H�H�����.�'�1�c�2�>�>�>�>�>rc��Gd�dt��}tj|d��|d����}|�|jd��|�|jd��|�t
|j��|��|�t
|j��|��dS)Nc�L�eZdZd�Zd�Zd�Zed���Zed���ZdS)�-FractionTest.test_int_subclass.<locals>.myintc�l�t|��t|��t|��z��Sr�r\r�r"s  rr�z5FractionTest.test_int_subclass.<locals>.myint.__mul__/s)��!�t�D�z�z�#�d�)�)�c�%�j�j�"8�9�9�9rc�l�t|��t|��t|��z��Srrjr"s  rr�z:FractionTest.test_int_subclass.<locals>.myint.__floordiv__1s)��!�t�D�z�z�#�d�)�)�s�5�z�z�"9�:�:�:rc�p�t|��t|��t|��z��}|Srrj)rrr$s   r�__mod__z5FractionTest.test_int_subclass.<locals>.myint.__mod__3s-���D��J�J�s�4�y�y�3�u�:�:�5�6�6���rc�L�t|��t|����Srrjr3s rrTz7FractionTest.test_int_subclass.<locals>.myint.numerator6s��!�t�D�z�z�#�d�)�)�,�,�,rc�2�t|��d��Sr�)r\r3s rrUz9FractionTest.test_int_subclass.<locals>.myint.denominator9s��!�t�D�z�z�!�}�}�$rN)	r8r9r:r�r�rmr�rTrUr2rr�myintrh.su������
:�
:�
:�
;�
;�
;�
�
�
��
-�
-��X�
-�
�
%�
%��X�
%�
%�
%rrprvr�rsry)r�rErFr[rTrUr\)rrpr�s   r�test_int_subclasszFractionTest.test_int_subclass-s���
	%�
	%�
	%�
	%�
	%�C�
	%�
	%�
	%�
��u�u�U�|�|�U�U�5�\�\�:�:�������a�(�(�(�������*�*�*�����a�k�*�*�E�2�2�2�����a�m�,�,�e�4�4�4�4�4rN)(r8r9r:r`rfrpr�rr�r�r�r�r�r�r�r�r�r�r�rrrrrrr r"r&r/r1r3r6r8r<rFrUrZrbrerqr2rrrYrY[sP������+�+�+�
Q�Q�Q�
;�;�;�1�1�1�2�;�;���;�=�=�=�q�q�q�f(�(�(� ���8-�-�-�0=�=�=�+�+�+�9�9�9�0,�,�,� ,� ,� ,�D"&�"&�"&�HA�A�A� +� +� +�D 
� 
� 
�DC'�C'�C'�J9�9�9�	,�	,�	,�8�8�8�@
,�
,�
,�5�5�5�$6�6�6�":�:�:�3�3�3�$3�3�3�,�,�,�	8�	8�	8�+�+�+�/�/�/�
1�
1�
1�?�?�?�
5�5�5�5�5rrY�__main__)�decimalr�test.supportrr?rr rEr�r?r��unittestrrr]rrrFr�objectr
r=rRrW�TestCaserYr8�mainr2rr�<module>rys���!�������*�*�*�*�*�*���������������������
�
�
�
�
�
�
�
�������������
�
�
�
���������
������������@8�8�8�8�8�F�8�8�8�@A�A�A�A�A�I�&�A�A�A�(�(�(�f5�f5�f5�f5�f5�8�$�f5�f5�f5�R�z����H�M�O�O�O�O�O��r