HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/__pycache__/test_fractions.cpython-312.opt-2.pyc
�

h�e�����	ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
m
Z
mZddlZddlmZmZej$Ze	j(j+e�xse	j.Ze	j(j3ed�ZGd�de�ZGd	�d
e�ZGd�dej$�Zd
�ZGd�dej@�Z!e"dk(rejF�yy)�)�Decimal)�requires_IEEE_754N)�copy�deepcopy)�dumps�loadszformatfloat_testcases.txtc�H�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZeZy
)�
DummyFloatc�H�t|t�std��||_y)Nz-DummyFloat can only be initialized from float)�
isinstance�float�	TypeError�value��selfrs  �:/opt/alt/python312/lib64/python3.12/test/test_fractions.py�__init__zDummyFloat.__init__s���%��'��K�L�L���
�c���t|tj�r&|tj	|j
�|�St|t�r||j
|j
�StS�N)r�numbers�Rational�F�
from_floatrr
�NotImplemented)r�other�ops   r�_richcmpzDummyFloat._richcmpsQ���e�W�-�-�.��a�l�l�4�:�:�.��6�6�
��z�
*��d�j�j�%�+�+�.�.�!�!rc�B�|j|tj�Sr)r�operator�eq�rrs  r�__eq__zDummyFloat.__eq__'���D�M�M�%����$E�Erc�B�|j|tj�Sr)rr �ler"s  r�__le__zDummyFloat.__le__(r$rc�B�|j|tj�Sr)rr �ltr"s  r�__lt__zDummyFloat.__lt__)r$rc�B�|j|tj�Sr)rr �ger"s  r�__ge__zDummyFloat.__ge__*r$rc�B�|j|tj�Sr)rr �gtr"s  r�__gt__zDummyFloat.__gt__+r$rc��yr��rs r�	__float__zDummyFloat.__float__.��rc��yrr2r"s  r�__sub__zDummyFloat.__sub__2r5rN)
�__name__�
__module__�__qualname__rrr#r'r*r-r0r4r7�__rsub__r2rrr
r
s2��B��
"�F�E�E�E�E�H�F��Hrr
c�8�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�
DummyRationalc�X�tj||�}||z|_||z|_yr)�math�gcd�num�den)rrArB�gs    rrzDummyRational.__init__:s(���H�H�S�#����!�8����!�8��rc��t|tj�r4|j|jk(xr|j
|jk(StSr)r�	fractions�FractionrA�
_numeratorrB�_denominatorrr"s  rr#zDummyRational.__eq__?sH���e�Y�/�/�0��H�H�� 0� 0�0�3��H�H�� 2� 2�2�
4�"�!rc�h�|j|jz|j|jzkSr�rArHrBrGr"s  rr*zDummyRational.__lt__F�+���x�x�%�,�,�,�t�x�x�%�:J�:J�/J�J�Krc�h�|j|jz|j|jzkDSrrJr"s  rr0zDummyRational.__gt__IrKrc�h�|j|jz|j|jzkSrrJr"s  rr'zDummyRational.__le__L�+���x�x�%�,�,�,����5�;K�;K�0K�K�Lrc�h�|j|jz|j|jzk\SrrJr"s  rr-zDummyRational.__ge__OrNrc��yrr2r3s rr4zDummyRational.__float__Tr5rN)
r8r9r:rr#r*r0r'r-r4r2rrr=r=7s,��K��
"�L�L�M�M�
8rr=c��eZdZy)�
DummyFractionN)r8r9r:r2rrrRrRWs��@rrRc�2�|j|jfSr)�	numerator�denominator)�rs r�_componentsrW[s��
�K�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%�Z(d&�Z)d'�Z*d(�Z+d)�Z,d*�Z-ed+��Z.y,)-�FractionTestc�r�	|jt|�t|��|j||�yr)�assertEqual�type�r�expected�actuals   r�assertTypedEqualszFractionTest.assertTypedEqualsas-��B�����h���f��6�����6�*rc	��	|j||�|jttt|��ttt|���yr)�assertTupleEqual�assertListEqual�list�mapr\r]s   r�assertTypedTupleEqualsz#FractionTest.assertTypedTupleEqualsfs=��P����h��/����T�#�d�H�"5�6��S��v�=N�8O�Prc��		||i|��|jd|jz�y#|$r%}|j|t|��Yd}~yd}~wwxYw)Nz
%s not raised)�failr8r[�str)r�exc_type�message�callable�args�kwargs�es       r�assertRaisesMessagez FractionTest.assertRaisesMessageksY��N�	;��d�%�f�%�
�I�I�o��(9�(9�9�:���	.����W�c�!�f�-�-��	.�s�*�A�A�Ac�(�|jdtt���|jdttd���|jdtttdd����|jdttdd���|jdttdd���|jd	ttd
d
���|jdttdd
���|jdttdd���|jdttd���|jdtttdd�d���|jdttdtdd����|jdtttdd�tdd����|jtdtdd�|jttd�|jttd d�|jttdd!�|jttdd"�|jttddd�y)#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.testInitus��������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��|jdttd���|jdttd���|jdttd���|jtttd��|jtttd��|jtttd	��y)
N)rzry�@rr��)��L�33fl皙�����?�nan�inf�-inf)r[rWrr��
ValueErrorr
�
OverflowErrorr3s r�testInitFromFloatzFractionTest.testInitFromFloat�s��������Q�s�V�!4�5������Q�t�W�!5�6����>�$�Q�s�V�,�	.�	
���*�a��u��6����-��E�%�L�9����-��E�&�M�:rc
�2�|jdtttd����|jdtttd����|jdtttd����|j	t
ttd��|j	t
ttd��|j	tttd	��|j	tttd
��y)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�7�	9�����$�Q�w�x�'8�%9�:�	<�����$�Q�w�y�'9�%:�;�	=�	
���*�a����8����*�a����9����-��G�E�N�;����-��G�F�O�<rc��
�|jdttd���|jdttd���|jdttd���|jdttd���|jdttd���|jd	ttd
���|jdttd���|jd
ttd���|jdttd���|jdttd���|jdttd���|jdttd���|jdttd���|jdttd���|jdttd���|jdttd���|jdttd���|jd ttd!���|jd"ttd#���|jd$ttd%���|jd$ttd&���|jtd'td(�|jt
d)td*�|jt
d+td,�|jt
d-td.�|jt
d/td0�|jt
d1td2�|jt
d3td4�|jt
d5td6�|jt
d7td8�|jt
d9td:�|jt
d;td<�|jt
d=td>�|jt
d?td@�|jt
dAtdB�|jt
dCtdD�|jt
dEtdF�|jt
dGtdH�|jt
dItdJ�|jt
dKtdL�|jt
dMtdN�|jt
dOtdP�|jt
dQtdR�|jt
dStdT�|jt
dUtdV�|jt
dWtdX�|jt
dYtdZ�|jt
d[td\�|jt
d]td^�|jt
d_td`�|jt
datdb�|jt
dctdd�de}|jt
df|zdgzt|�|jt
dh|zdgztdi|z�|jt
dj|zdgztdk|z�|jt
dl|zdgztdm|z�y)nN)rzrs�5)rvryr�z3 / 2z 
  +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'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__1z&Invalid literal for Fraction: '123.dd'z123.ddz(Invalid literal for Fraction: '123.5_dd'z123.5_ddz$Invalid literal for Fraction: 'dd.5'zdd.5z$Invalid literal for Fraction: '7_dd'�7_ddz$Invalid literal for Fraction: '1/dd'z1/ddz(Invalid literal for Fraction: '1/123_dd'z1/123_ddz&Invalid literal for Fraction: '789edd'�789eddz(Invalid literal for Fraction: '789e2_dd'�789e2_dd�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�!4�5������Q�u�X�!6�7������Q�w�Z�!8�9������Q�{�^�!<�=�����+�a��k�":�;�����+�a�0A�.B�"C�D�����+�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�	�	
� � ��<�
�t�	�	
� � ��<�
�t�	�	
� � ��>�
�v�	�	
� � ��?�
�w�	�	
� � ��=�
�u�	�	
� � ��?�
�w�	�	
� � ��?�
�w�	�	
� � ��;�
�s�	�	
� � ��;�
�s�	�	
� � ��<�
�t�	�	
� � ��>�
�v�	�	
� � ��<�
�t�	�	
� � ��=�
�u�	�	
� � ��=�
�u�	�	
� � ��?�
�w�	�	
� � ��=�
�u�	�	
� � ��>�
�v�	�	
� � ��@�
�x�	�	
� � ��@�
�x�	�	
� � ��@�
�x�	�	
� � ��A�
�y�	�	
� � ��C�
�{�	�	
� � ��@�
�x�	�	
� � ��B�
�z�	�	
� � ��>�
�v�	�	
� � ��>�
�v�	�	
� � ��>�
�v�	�	
� � ��B�
�z�	�	
� � ��@�
�x�	�	
� � ��B�
�z�	���� � ��9�C�?�#�E�
�s�	�	
� � ��;�c�A�C�G�
�t�c�z�	�	
� � ��;�c�A�C�G�
�t�c�z�	�	
� � ��>��D�s�J�
�w��}�	rc��tdd�}|jdd�|jdt|��|j	t
t|dd�|j	t
t|dd	�|jdt|��d
|_d|_|jdt|��|jtd
d�|�y)Nrtrvryr|rurTr�rU��)r�ry)
rrr[rWr��AttributeError�setattrrGrH�assertNotEqual�rrVs  r�
testImmutablezFractionTest.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��|jttjd�|j	dttjd���d}|j	|dfttj|���|j	dttjd���|j	dttjd���|j	d	ttjd
���|j	dttjd���|j	t
d
�t
tjd���|j	dttjd���|j	dt
tjd���d}||z
}|jtdtj|�|jtdtj|�|jtdtj|�y)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?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����C�i��� � ��E�
�L�L�#�	�	
� � ��E�
�L�L�3�$�	 �	
� � ��=�
�L�L�#�	rc�V�|jttjd�|j	tdd�tjd��|j	td�tjtd���|j	tdd�tjtd���|j	tdd�tjtd	���|j	td
�tjtd���|j	dtdd�z
tjtd
���|j
tdtjtd��|j
tdtjtd��|j
tdtjtd��|j
tdtjtd��y)Nr�r{rsr�-0rzz0.5��z5e-3i��5e3l�7�3M�e'z 0.999999999999999999999999999999r�r�r�r�r�r�)	r�rr�from_decimalr[rrpr�r�r3s r�testFromDecimalzFractionTest.testFromDecimal[sx�����)�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�|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��|jtdd�j��y)Nrsrwryrx)�
assertTruer�
is_integer�assertFalser3s r�test_is_integerzFractionTest.test_is_integerss������!�Q��*�*�,�-�����"�a��+�+�-�.�����!�R��+�+�-�.�����!�Q��*�*�,�-�����"�a��+�+�-�.�����!�R��+�+�-�.�����1�a��+�+�-�.�����2�q��,�,�.�/�����1�b��,�,�.�/�����2�r��-�-�/�0rc�T�|jtdd�j�d�|jtdd�j�d�|jtdd�j�d�|jtdd�j�d�y)	Nr�r�)ryrv���)rxrvi����rrr)r[r�as_integer_ratior3s r�test_as_integer_ratioz"FractionTest.test_as_integer_ratio�s~������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��td�}|j|jd�tdd��|j|jd�tdd��|j|jd�tdd��|j|jd�tdd��|jtd	d
�jd�td��|jtd	d
�jd
�tdd
��|jtd�jd�td��dD]-}|jtdtd�j|��/y)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�s5���$�%������.�.�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�*�|jdtjtdd���|jdtjtdd���|jdtjtdd���|jdtj
tdd���|jdtj
tdd���|jdt
tdd���|jdttdd���|jdttd	d���|jdttd
d���|jdttdd���|jdttdd���|jd
ttdd���|jdttdd���|jttt
d��|jdttt
d�t
d����|jdttdd���y)Nrwi����r{rsrrxr�rr������FTrvryr���22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222227gUUUUUU�?��33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331��������?)r`r?�truncr�floor�ceil�int�roundr[�boolr
r�r��assertAlmostEqual�complexr3s r�testConversionszFractionTest.testConversions�s������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���tdd�}|j|tj�|j	t|�d�|j	t
t|��t
�y)Nrvryrs)r�assertIsInstance�typing�SupportsIntr[r�r\)r�fs  r�testSupportsIntzFractionTest.testSupportsInt�sO��
�a��G�����a��!3�!3�4�����Q���#�����c�!�f��s�+rc���G�fd�dt��t�d��d��}|j|j��|j|j��|j|t
j�|jt|�d�|jtt|��t�y)Nc�H��eZdZ	ed��Ze�fd��Z�fd�Z�fd�Zy)�:FractionTest.testIntGuaranteesIntReturn.<locals>.CustomIntc��|Srr2r3s rrTzDFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.numerator�s���rc����d�S�Nrsr2)r�	CustomInts �rrUzFFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.denominator�s
��� ��|�#rc�>���t|�t|�z�Sr�r��rrr�s  �r�__mul__zBFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__mul__�s��� ��T��S��Z�!7�8�8rc�>���t|�t|�z�Srr�r�s  �r�__floordiv__zGFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__floordiv__�s��� ��T��c�%�j�!8�9�9rN)r8r9r:�propertyrTrUr�r�)r�s�rr�r��s:���
��
��
��
$��
$�
9�
:rr�r�rzry)	r�rr�rTrUr�r�r[r\)rr�r�s  @r�testIntGuaranteesIntReturnz'FractionTest.testIntGuaranteesIntReturn�s����
	:��	:�*
�i��m�Y�q�\�*�����a�k�k�9�5����a�m�m�Y�7����a��!3�!3�4�����Q���#�����c�!�f��s�+rc�l�tjGd�d��}tjj	|�|d�}t|�}|j
|j|�|j
t|�d�|d�}t|�}|j
t|�d�y)Nc�6�eZdZdZd�Zd�Zed��Zd�ZeZ	y)�=FractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValuersc��||_yr)rrs  rrzFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__init__�s	��"��
rc�,�t|j�Sr)r�rr3s r�__bool__zFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__bool__�s���D�J�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�NrN)
r8r9r:rUrrr�rTr#r*r2rr�CustomValuer�s2���K�
#�
(��
��
�
O��FrrrsTrF)	�	functools�total_orderingrr�registerr�assertIsrTr�)rrrTrVs    r�testBoolGuarateesBoolReturnz(FractionTest.testBoolGuarateesBoolReturn�s���
�	!�	!�	�	�
"�	�(	���!�!�+�.���N�	�
�i�L���
�
�a�k�k�9�-��
�
�d�1�g�t�$���N�	�
�i�L���
�
�d�1�g�u�%rc	���|jtd�ttd�d��|jtd�ttd�d��|jtd�ttd�d��|jtdd�ttd	d
�d��|jtdd�ttdd
�d��y)
Ni8���ij���rxi�����rwr{r�r�rsi��)r`rr�r3s r�	testRoundzFractionTest.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
�	�|jtdd�tdd�tdd�z�|jtdd�tdd�tdd�z
�|jtdd�tdd�tdd�z�|jtdd�tdd�tdd	�z�|jtdd	�tdd�tdd�z�|jtd
d�tdd	�tdd�z�|jttj
td�td
��|j
dtdd�tdd�z�|j
dtdd�td�z�|jtdd�tdd�tdd�z�|jtdd�tdd�tdd�z�|jtd�tdd�fttdd�tdd���|jtd�tdd�fttdd�tdd���|jtdd�tdd�td�z�|jtdd�tdd�td�z�|j
dtd	�tdd�z�|jtdd�tdd���ttd�tdd��}|j|jd
�|j|jd�tdd�d
z}|j|tdd��|j|jd�|j|jd�tdd�dz}|j|tdd��|j|jd�|j|jd�tdd�dz}|j|td	d��|j|jd	�|j|jd�y)Nrsryr{rzr��r�rvr�r��rxrr�r}rtr���@rw)r[rr�r�r �truedivr`�divmod�powr��real�imagrTrU)r�z�ps   r�testArithmeticzFractionTest.testArithmetics�������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�|jtdd�tddzdzd�tdddzdz
�z�|jtdd�td	d
zd�tdd	d
z�z�|jd
tdd�fttddzdzd�tdddzdz
���|jd	dzdztd	d
zd�tdd	d
z�z�|jdtdd	d
z�tdd	d
z�z�|jdtd	d	d
z�fttdd	d
z�tdd	d
z���|jd	dzdztdd�fttd	d
zd�tdd	d
z���y)Nl�b;e�f�Op�Umn�P|�}�l�~J�w�5�PHyT#/jei�4�T�r{�#rslP��~�cegrtlryr�rvrzl��_�r�r|)r`rrfrr3s r�testLargeArithmeticz 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
�*�|jtdd�tdd�dz�|jdtdd�dz�|jdtdd�dz�|jtdd�dtdd�z�|jddtdd�z�|jddtdd�z�|jtdd�tdd�dz
�|jd	tdd�dz
�|jd
tdd�dz
�|jtdd�dtdd�z
�|jddtdd�z
�|jd
dtdd�z
�|jtdd�tdd�dz�|jdtdd�dz�|jdtdd�dz�|jtdd�dtdd�z�|jddtdd�z�|jddtdd�z�|jtdd�tdd�dz�|jdtdd�dz�|jdtdd�dz�|jtdd�dtdd�z�|jddtdd�z�|jddtdd�z�|jdtdd�dz�|jdtdd�dz�|jddtdd�z�|jddtdd�z�|jddtdd�z�|jtdd�tdd�dz�|jdtdd�dz�|jtdd�dtdd�z�|jddtdd�z�|jdtdd�td�z�|jtd�tdd�td�z�|jtd�tdd�td�z�|jdtdd�td�z�|jdtdd�ft	tdd�d��|jt	dd�t	tdd�d��|jdtd�ft	dtdd���|jt	dd�t	dtdd���|jt	dtd��t	tdd�td���|jt	dtd��t	tdd�td���|jt	dtd��t	tdd�td���|jt	dtd��t	tdd�td���|jtdd�tdd�dz�|jtdd�tdd�dz�|jdtdd�dz�|jdtdd�dz�|jddtdd�z�tdtdd��}|j
d|j�|jd|j�|jtdd�dtdd�z�|jd dtdd�z�|jd!d tdd�z�|jddtdd�z�|jttj
tdd�d�y)"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�rg�?)
r`rr
rfrrr�rr[rr�r�r )rrs  r�testMixedArithmeticz FractionTest.testMixedArithmeticEs������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�)>�?����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��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�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�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�	'rc	���|jttjt	dd�td��|jttjtd�t	dd��y)Nrvrz	3.1415926)r�rr �addrrr3s r�testMixingWithDecimalz"FractionTest.testMixingWithDecimal�sN�����)�X�\�\��A�b�'�7�;�#7�	9����)�X�\�\�!�+�.��!�B��	9rc���|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k(�|jtdd�tdd�k(�|jtdd�tdd�k7�|jtdd�tdd�k7�y)Nrsryrv)r�rr�r3s r�testComparisonszFractionTest.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���|jtdd�tdd�k(�|jtdd�tdd�k(�|jtdd�tdd�k(�|jtdd�tdd�k(�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�kD�|jtdd�tdd�kD�|jtdd�tdd�kD�|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�kD�|jtdd�tdd�kD�|jtdd�tdd�kD�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k�|jtdd�tdd�k\�|jtdd�tdd�k\�|jtdd�tdd�k\�y)Nrsryrvr�rt)r�rr=r�r3s r�testComparisonsDummyRationalz)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��td�}tdd�}|j||k7�|j||kxs||kD�|j||k(�|j||kxr||k\�|j||k7�|j||kxs||kD�|j||k(�|j||kxr||k\�y)NgUUUUUU�?rsrv)r
rr�r�)r�x�ys   r�testComparisonsDummyFloatz&FractionTest.testComparisonsDummyFloat�s����u���
�a��G������Q�������A����Q��'�����a�� �����a��*�A��F�+�����Q�������A����Q��'�����a�� �����a��*�A��F�+rc��|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�y)Nryrzr�rvrs�333333�?皙�����?��?r�r�rr{r�r�rt�r������r�rr�r
r3s r�
testMixedLesszFractionTest.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��|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�y)Nr3rsryr1r2r�rvrzr�r�rr{r�r�rtr4r�r5r6r7r3s r�testMixedLessEqualzFractionTest.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
�`�|jtd�td�k(�|jdtttjd�dz��k�|jdttjd�dz�k�|jdttjd�dz
�k�|jdttjd�dz
�kD�|jdttjd�dz�k\�y)Nr}r�rs)r�rr
r?r�r�r3s r�testBigFloatComparisonsz$FractionTest.testBigFloatComparisons�s�������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�^�|jtd�td�k(�|jtt
jtd�td��|jtt
jtd�td��tdd�}tdd�}tdd�}|j||k(�|j||k7�|j||k(�|j||k7�t
jt
jt
jt
jfD]b}|jt|||�|jt|||�|jt|||�|jt|||��dy)Nr}rvrg�?r#g�������?)r�rr�r�rr r/r&r�r)r,)rr-r�wrs     r�testBigComplexComparisonsz&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�������Q�������a�� �����a�� �����Q����+�+�x�{�{�H�K�K����D�	3�B����i��Q��2����i��Q��2����i��Q��2����i��Q��2�		3rc��|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(�y)
Nr3rsryr1r2r�rvrzr�rtr�r�r7r3s r�testMixedEqualzFractionTest.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�|jdttdd���|jdttd���|jdttdd���|jd	ttdd���|jd
ttdd���y)NzFraction(7, 3)rtrvz Fraction(6283185307, 2000000000)�3.1415926535z#Fraction(-1, 100000000000000000000)rsl���� F�x:^Vz7/3�7)r[�reprrrir3s r�testStringificationz FractionTest.testStringifications������)�4��!�Q��=�9����;��a��/�0�	2����>��a��7�m�,�	.������A�a��G��-�����c�!�A�q�'�l�+rc	�Z�tjj}tjj}|j	td�tt
dd���|j	tddz�tt
ddz���|jttd��tt
d���|j	|tt
d|���|j	tt
d��t
d�j��y)	Nr�rzryr{�2r}rsrw)
�sys�	hash_info�modulusr�r[�hashrr�r
�__hash__)r�hmod�hinfs   r�testHashzFractionTest.testHashs����}�}�$�$���}�}� � ������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�0�td�}d|dddddf\}}}}}}}t||z
�tdd�kDr?|}||z|dz}}||z|dz}}||z|z}||z
}t||z
�tdd�kDr�?|jtj|�y)Nrvrrs��ʚ;r� )r�absr�r?�pi)	r�three�lasts�t�s�n�na�d�das	         r�testApproximatePizFractionTest.testApproximatePi)s����!���$%�u�a��A�q�"�$<�!��q�!�Q��A�r��!�e�)�n�q��E�{�*��E��b�D�"�Q�$�r�A��b�D�"�R�%�r�A��Q��!��A�
��F�A��!�e�)�n�q��E�{�*�	
���t�w�w��*rc�V�td�}ddtd�dddf\}}}}}}t||z
�tdd�kDrF|}|dz
}|||dz
zz}|||zz}|dz}|||z|zz
}t||z
�tdd�kDr�F|jtjd�|�y)NrsrrSryrw)rrUr�r?�cos)rr-r�rXrZ�factrA�signs        r�testApproximateCos1z FractionTest.testApproximateCos16s���
�a�D��'(�!�Q�q�T�1�a��':�$��5�!�T�3���!�e�)�n�q��E�{�*��E�
��F�A��A��1��I��D��1�q�5�L�C��B�J�D�
��t��d�"�"�A�
�!�e�)�n�q��E�{�*�	
���t�x�x��{�A�.rc
��tdd�}tdd�}tdtjdz�D]'}|j|t
t||����)|jt|�tt|���|jt|�tt|���|jt|�tt|���|jt|�tt|���|j|t|��|j|t|��y)Nr�rtrrs)
rrR�range�pickle�HIGHEST_PROTOCOLr[rr�idrrr�r`)rrV�dr�protos    r�test_copy_deepcopy_picklez&FractionTest.test_copy_deepcopy_pickleDs���
�b�!�H��
�2�q�
!���1�f�5�5��9�:�	8�E����Q��e�A�u�o� 6�7�	8�����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�tdd�}|jtt|dd�y)Nr�rt�ar{)rr�r�r�r�s  r�
test_slotszFractionTest.test_slotsPs#��
�b�!�H�����.�'�1�c�2�>rc�j�Gd�dt�}tj|d�|d��}|j|jd�|j|j
d�|jt
|j�|�|jt
|j
�|�y)Nc�>�eZdZd�Zd�Zd�Zed��Zed��Zy)�-FractionTest.test_int_subclass.<locals>.myintc�N�t|�t|�t|�z�Sr�r\r�r"s  rr�z5FractionTest.test_int_subclass.<locals>.myint.__mul__Ws ��!�t�D�z�#�d�)�c�%�j�"8�9�9rc�N�t|�t|�t|�z�Srrtr"s  rr�z:FractionTest.test_int_subclass.<locals>.myint.__floordiv__Ys ��!�t�D�z�#�d�)�s�5�z�"9�:�:rc�R�t|�t|�t|�z�}|Srrt)rrr-s   r�__mod__z5FractionTest.test_int_subclass.<locals>.myint.__mod__[s$���D��J�s�4�y�3�u�:�5�6���rc�6�t|�t|��Srrtr3s rrTz7FractionTest.test_int_subclass.<locals>.myint.numerator^s��!�t�D�z�#�d�)�,�,rc�$�t|�d�Sr�)r\r3s rrUz9FractionTest.test_int_subclass.<locals>.myint.denominatoras��!�t�D�z�!�}�$rN)	r8r9r:r�r�rwr�rTrUr2rr�myintrrVs7��
:�
;�
��
-��
-�
�
%��
%rrzrvr�rsry)r�rErFr[rTrUr\)rrzr�s   r�test_int_subclasszFractionTest.test_int_subclassUs���
	%�C�
	%�
���u�U�|�U�5�\�:��������a�(��������*�����a�k�k�*�E�2�����a�m�m�,�e�4rc��tdd�ddftdd�ddftd�ddftd�dd	fg}|D]>\}}}|j||�
�5|jt||�|�ddd��@y#1swY�KxYw)Nrsrv�z1/3rwz-1/3�3r��-3��fraction�spec�r�subTestr[�format�r�	testcasesr�r�r^s     r� test_format_no_presentation_typez-FractionTest.test_format_no_presentation_typeks����q�!�W�b�%� �
�r�1�X�r�6�"�
�q�T�2�s�O�
�r�U�B���	
�	�)2�	C�$�H�d�H����x�d��;�
C�� � ���$�!7��B�
C�
C�	C�
C�
C�s�A=�=B	c��gtdd�ddf�tdd�ddf�tdd�ddf�tdd�dd	f�tdd
�ddf�tdd�ddf�td
d�ddf�tdd�ddf�td
d�ddf�tdd�ddf�tdd�ddf�td�ddf�tdd�ddf�tdd�ddf�tdd�ddf�tdd�ddf�td�ddf�td�ddf�td�ddf�td�dd f�td!�dd"f�td#�dd"f�td$d�dd%f�td&d�dd'f�td(�dd)f�td*�dd+f�td,�dd-f�tdd�d.d/f�tdd�d0d1f�td2�d3d4f�td5d6�d7d8f�td2�d9d:f�td5d6�d;d8f�td5d6�d<d8f�td5d6�d=d>f�td?�d@dAf�tdB�dCdDf�tdEd6dz�dFdGf�}|D]>\}}}|j||�H�5|jt||�|�ddd��@y#1swY�KxYw)INryrvz.6ez6.666667e-01z1.500000e+00r�z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+00rsr�z	1.000e-03r�z	1.000e-02r{z	1.000e-01z	1.000e+00z	1.000e+01z	1.000e+02z	1.000e+03z99.999994999999z9.999999e+01z	99.999995z1.000000e+02z99.999995000001rxz
-6.666667e-01r�z
-1.500000e+00i����z
-1.000000e+02�1e1000z1.000e+1000z1e-1000z1.000e-1000z.6Ez6.666667E-01z.1ez6.7e-01z0.995z.0ez1e+00r�rtroz3.142857e+00z#.0ez1.e+00z11.6ez12.6ez13.6ez
 3.142857e+00z1234567.123456z,.5e�1.23457e+06z
123.123456z012_.2ez0_001.23e+02rwzz.6ez
-3.091690e-85r�r�r�s     r�test_format_e_presentation_typez,FractionTest.test_format_e_presentation_typews���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�	C�$�H�d�H����x�d��;�
C�� � ���$�!7��B�
C�
C�	C�
C�
C�s�I6�6I?	c��gtdd�ddf�tdd�ddf�tdd�ddf�td	d�dd
f�tdd�ddf�tdd�dd
f�tdd�ddf�tdd�ddf�tdd�ddf�tdd�ddf�td�ddf�tdd�ddf�tdd�ddf�td�ddf�td d�dd!f�td"�dd#f�td$�dd%f�td&�dd%f�td'�dd(f�td)�dd(f�td*�dd+f�td,�dd+f�td-�dd.f�td/�dd0f�td1�dd2f�td3�dd2f�td4�dd5f�td6�dd5f�td7�dd8f�td9�dd8f�td:�dd;f�tdd�ddf�tdd�d<df�tdd�d=d>f�tdd�d?d@f�tdAd�ddBf�tdAd�d<dBf�tdAd�d=dBf�tdAd�d?dBf�tdd�dCdDf�tdEd�dCdFf�tdd�dCdGf�td d�dCdHf�tdd�dIdJf�tdEd�dIdKf�tdd�dIdLf�td d�dIdMf�tdN�dOdf�tdN�dPdf�tdN�dQdRf�tdN�dSdTf�tdU�dOdf�tdU�dPdf�tdU�dQdRf�tdU�dSdTf�tdd�dVdWf�tdX�dVdYf�tdX�dZd[f�tdd�d\dWf�tdd�d]d^f�tdd�d_df�tdd�d`df�tdd�dadbf�tdd�dcddf�tdd�dedff�tdd�dgdhf�tdAd�didjf�tdd�didkf�tdAd�dldBf�tdAd�dmdnf�tdAd�dodpf�tdAd�dqdrf�tdAd�dsdtf�tdAd�dudvf�tdAd�dwdxf�tdAd�dydzf�tdAd�d{d|f�tdAd�d}d~f�tdAd�dd�f�tdAd�d�d�f�tdAd�d�d�f�tdAd�d�d�f�tdd�d�d�f�tdd�d�d�f�tdd�d�df�tdd�d�df�tdd�d�df�tdd�d�df�tdd�d�df�tdd�d�df�tdd�d�df�tdd�d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�tdd�d�df�tdd�d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�td��d�d�f�tdīd�d�f�tdīd�d�f�tdd�d�df�tdd�d�d�f�tdd�d�d�f�tddʫd�d�f�tdd̫d�d�f�tddΫd�d�f�tddЫd�d�f�tdd�d�d�f�tdd�d�d�f�td�d�d�d�f�tdd�d�d�f�tdd�d�d�f�tdd�d�d�f�tdd�ddf�tdd�ddf�tdd�dd
f�td�d߫dd�f�td�d߫dd�f�td�d߫dd�f�tdd֫d�d�f�td�d߫d�d�f�td�d߫d�d�f�td�d߫d�d�f�td�d߫d�d�f�}|D]>\}}}|j||��5|jt||�|�ddd��@y#1swY�KxYw)�Nrrsz.2fz0.00rvz0.33ryz0.67r�z1.33r�0.12z0.38r�z0.08��z0.01r�r�rtz.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.67rxz-0.67z.0f�0rwr�r~rz#.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,.2fz00001,234.57z12.34zX>0.2fz.5Fz.2%z314.29%z14.29%�Fz1.43%i�z0.14%iXz0.01%ipz0.00%z.0%z14%z#.0%z14.%r�z,.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_typez,FractionTest.test_format_f_presentation_type�s=��{
�
�q�!�W�e�V�$�{
��q�!�W�e�V�$�{
��q�!�W�e�V�$�	{
�
�q�!�W�e�V�$�{
��q�!�W�e�V�$�
{
��q�!�W�e�V�$�{
��q�"�X�u�f�%�{
��q�#�Y��v�&�{
��q�#�Y��v�&�{
��r�1�X�u�i�(�{
��{�^�U�N�3�{
��v�u�
�v�
C�
E�{
�"�r�1�X�s�J�'�#{
�$�q�T�3�
�#�%{
�&�s�A�Y��[�)�'{
�*�w�Z���'�+{
�,�~�
��v�.�-{
�.�~�
��v�.�/{
�0�w�Z���'�1{
�2�w�Z���'�3{
�4�~�
��v�.�5{
�6�~�
��v�.�7{
�8�w�Z���'�9{
�:�x�[�%��)�;{
�<��
���0�={
�>��
���0�?{
�@�x�[�%��)�A{
�B�x�[�%��)�C{
�D��
���0�E{
�F��
���0�G{
�H�x�[�%��)�I{
�L�q�!�W�e�V�$�M{
�N�q�!�W�f�f�%�O{
�P�q�!�W�f�g�&�Q{
�R�q�!�W�f�g�&�S{
�T�r�1�X�u�g�&�U{
�V�r�1�X�v�w�'�W{
�X�r�1�X�v�w�'�Y{
�Z�r�1�X�v�w�'�[{
�^�q�!�W�e�S�!�_{
�`�r�1�X�u�d�#�a{
�b�r�1�X�u�c�"�c{
�d�s�A�Y��t�$�e{
�h�q�!�W�f�d�#�i{
�j�r�1�X�v�u�%�k{
�l�r�1�X�v�t�$�m{
�n�s�A�Y���&�o{
�r�x�[�&�&�)�s{
�t�x�[�'�6�*�u{
�v�x�[�'�7�+�w{
�x�x�[�'�7�+�y{
�z�w�Z���(�{{
�|�w�Z��&�)�}{
�~�w�Z��'�*�{
�@�w�Z��'�*�A{
�D�q�!�W�f�h�'�E{
�F�u�X�v�z�*�G{
�H�u�X�u�n�-�I{
�L�q�!�W�g�x�(�M{
�N�q�!�W�g�x�(�O{
�P�q�!�W�g�v�&�Q{
�R�q�!�W�g�v�&�S{
�T�q�!�W�g�w�'�U{
�V�q�!�W�g�x�(�W{
�X�q�!�W�g�y�)�Y{
�Z�q�!�W�g�z�*�[{
�^�r�1�X�x��,�_{
�`�q�!�W�h�
�+�a{
�d�r�1�X�x��)�e{
�f�r�1�X�x��+�g{
�h�r�1�X�x��+�i{
�j�r�1�X�x��+�k{
�l�r�1�X�x��+�m{
�n�r�1�X�x��+�o{
�r�r�1�X�{�O�4�s{
�t�r�1�X�y�+�.�u{
�v�r�1�X�y�+�.�w{
�x�r�1�X�x��+�y{
�z�r�1�X�x��+�{{
�|�r�1�X�z�=�1�}{
�@�r�1�X�w�	�*�A{
�B�r�1�X�x��+�C{
�D�q�!�W�h�	�*�E{
�F�q�!�W�h�	�*�G{
�L�q�!�W�f�f�%�M{
�N�q�!�W�g�v�&�O{
�P�q�!�W�g�v�&�Q{
�R�q�!�W�g�v�&�S{
�T�q�!�W�g�v�&�U{
�X�q�!�W�g�v�&�Y{
�\�q�!�W�f�f�%�]{
�^�q�!�W�f�k�*�_{
�`�|�_�f�l�3�a{
�b�y�\�6�>�2�c{
�d�z�]�F�O�4�e{
�f�z�]�D�"5�6�g{
�j�q�!�W�f�f�%�k{
�l�q�!�W�f�k�*�m{
�n�|�_�f�l�3�o{
�p�y�\�6�>�2�q{
�r�z�]�F�O�4�s{
�v�{�^�X�z�2�w{
�x�{�^�X�z�2�y{
�z�{�^�X�{�3�{{
�|�{�^�Y��5�}{
�~�{�^�Y��7�{
�@�{�^�Y��7�A{
�B�{�^�Y��8�C{
�D�{�^�Y�(8�9�E{
�F�{�^�Y�(:�;�G{
�H�{�^�Y�(:�;�I{
�J�|�_�h��4�K{
�L�|�_�h��4�M{
�N�|�_�h��4�O{
�P�|�_�i��6�Q{
�R�|�_�i��7�S{
�T�|�_�i��9�U{
�V�|�_�i��9�W{
�X�|�_�i�)9�:�Y{
�Z�|�_�i�):�;�[{
�\�|�_�i�)<�=�]{
�`�|�_�h��1�a{
�b�|�_�h�	�2�c{
�d�|�_�h�
�3�e{
�f�|�_�h��5�g{
�r�{�^�Z��8�s{
�|�w�Z���)�}{
�~�w�Z��7�+�{
�B�r�1�X�u�i�(�C{
�F�r�1�X�u�i�(�G{
�H�q�!�W�e�X�&�I{
�J�q�"�X�u�g�&�K{
�L�q�#�Y��w�'�M{
�N�q�$�Z���(�O{
�P�q�%�[�%��)�Q{
�R�q�!�W�e�U�#�S{
�T�q�!�W�f�f�%�U{
�V�s�A�Y���,�W{
�X�r�1�X�v�y�)�Y{
�Z�r�1�X�v�z�*�[{
�\�r�1�X�w�
�+�]{
�`�q�!�W�e�V�$�a{
�b�q�!�W�e�V�$�c{
�d�q�!�W�e�V�$�e{
�f�t�T�]�E�6�*�g{
�h�t�T�]�E�6�*�i{
�j�t�T�]�E�6�*�k{
�l�q�#�Y��u�%�m{
�n�r�4�[�%��'�o{
�p�r�4�[�%��'�q{
�r�s�D�\�5�%�(�s{
�t�s�D�\�5�%�(�u{
�	�x)2�	C�$�H�d�H����x�d��;�
C�� � ���$�!7��B�
C�
C�	C�
C�
C�s�	c1�1c:	c�B�gtd�ddf�td�ddf�td�ddf�td�dd	f�td
�ddf�td�dd
f�td�ddf�td�ddf�td�ddf�td�ddf�td�ddf�td�ddf�td�ddf�td�ddf�td�dd f�td!�d"d#f�td$�d"d#f�td%�d"d&f�td'�d"d&f�td(�d"d)f�td*�d"d)f�td+�d"d,f�td-�d"d,f�td.�dd/f�td0�dd1f�td2�dd3f�td4�dd5f�td6�dd7f�td.�d8d9f�td0�d8d0f�td2�d8d2f�td4�d8d4f�td6�d8d:f�td�d;df�td�d;d<f�td=�d>d?f�td@�dAdBf�tdC�dAdDf�tdE�dAdFf�tdG�dAdHf�tdG�dIdJf�tdK�dAdLf�tdK�dIdMf�td@�dNdBf�tdC�dNdDf�tdE�dNdFf�tdG�dNdHf�tdG�dOdJf�tdK�dNdLf�tdP�dQdRf�tdSdTdUz�dVdWf�}|D]>\}}}|j||�X�5|jt||�|�ddd��@y#1swY�KxYw)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+06rCrCz3.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_616rwrtr��zgz-3.09169e-85r�r�r�s     r�test_format_g_presentation_typez,FractionTest.test_format_g_presentation_typess���=
�
��
 �%��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�	C�$�H�d�H����x�d��;�
C�� � ���$�!7��B�
C�
C�	C�
C�
C�s�-L�L	c�X�tdd�}|jt�5t|d�ddd�gd�}|D]G}|j	|��5|jt
�5t||�ddd�ddd��Iy#1swY�ZxYw#1swY� xYw#1swY�lxYw)Nryrv)�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.2f)r�)rr�rr�r�r�)rr��
invalid_specsr�s    r�test_invalid_formatsz!FractionTest.test_invalid_formats�s����Q��7��
�
�
�y�
)�	#��8�T�"�	#�!
�
�D"�	+�D����4��(�
+��&�&�z�2�+��8�T�*�+�
+�
+�	+�K	#�	#��N+�+��
+�
+�s/�
B�B �(
B�5B �B�B�B � B)	c��ttd��5}|D�]K}|jd�r�|j�}|s�)t	t
j|j
d��\}}|j
�\}}|dk(r�n|dd}|j||��5tt|��}|jt||�|�|r |jt||�d|z�t|�}|jtt||��t|��|jtt||��td|z��ddd���N	ddd�y#1swY��cxYw#1swYyxYw)	Nzutf-8)�encodingz--z->z%rrs)�fmt�arg�-)�open�format_testfile�
startswith�stripreri�splitr�rr
r[r�)	r�testfile�line�lhs�rhsr�r��fmt2r�s	         r�test_float_format_testfilez'FractionTest.test_float_format_testfile�s`��
�/�G�
4�	P�� �
P���?�?�4�(���z�z�|�����s�y�y�$�*�*�T�*:�;���S��9�9�;���S��$�;���1�2�w���\�\�c�s�\�3�P��%��*�
�A��$�$�V�A�t�_�c�:���(�(����D�)9�3��9�E��#��A��$�$�U�6�!�T�?�%;�U�3�Z�H��$�$�U�6�1�"�d�+;�%<�e�C�#�I�>N�O�P�P�
P�	P�	P�P�P��	P�	P�s%�B	E;�B>E.�E;�.E8�3E;�;FN)/r8r9r:r`rfrpr�rr�r�r�r�r�r�r�r�r�r�r�r�r
rrr!r$r'r)r+r/r8r:r<r?rArFrPr_rdrlror{r�r�r�r�r�r�r2rrrYrY_s��+�
Q�
;�1�2�;��;�=�G�R(� �8-�01�=�+�9�0,� ,�D"&�HA�!+�F 
�DC'�J9�	,�8�@
,�5�$6�":�3�$3�,�	8�+�/�
1�?�
5�,
C�8C�t@C�DBC�H*+�X�P��PrrY�__main__)$�decimalr�test.supportrr?rr rEr	�osrIr��unittestrrrgrrrFr�path�dirname�__file__�curdir�test_dir�joinr��objectr
r=rRrW�TestCaserYr8�mainr2rr�<module>r�s���!��*������	�
�
���
��
�����7�7�?�?�8�$�1��	�	���'�'�,�,�x�)D�E�����@8�F�8�@A�I�&�&�A�(�ZP�8�$�$�ZP�z$�z���H�M�M�O�r