Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_long.cpython-312.opt-1.pyc

�

'ΜgT����ddlZddlmZddlZddlZddlZddlZejjZ	de	zZ
e
dz
ZdZdZ
ddde
e
dz	ddgZd	Zede	z�D]Zej%edz
�edzZ�[eeD�cgc]}|��c}eD�cgc]}|��c}zz
Zej&j(Zej&j,Zej&j0Zej&j4Zdezdeez
dz
zz
Zd
�Zd�ZGd�d
ej>�Z e!dk(rejD�yycc}wcc}w)�N)�support���F�lUU�*UU�*l�*UU�*UU
�c��tjjdz}tjj|z
}d|z}gd�}|dk(ry|dkr
t	|�S|j�|z
}|dkr||zn||z	t
|d|zz�z}|||dzz
}|||k(z|kDrtd��tjt|�|�S)	z9
    Correctly-rounded integer-to-float conversion.

    rr)r������rrr
rrr�r
�z%integer too large to convert to float)�sys�
float_info�mant_dig�max_exp�int_to_float�
bit_length�bool�
OverflowError�math�ldexp�float)�n�	PRECISION�	SHIFT_MAX�Q_MAX�ROUND_HALF_TO_EVEN_CORRECTION�shift�qs       �+/usr/local/lib/python3.12/test/test_long.pyrr's������'�'�!�+�I����&�&��2�I�
��N�E�$?�!�	�A�v��	
�Q���a�R� � � �
�L�L�N�Y�&�E��q�y��e�V��q�E�z�T�!��e��n�:L�5M�&M�A��	&�q�1�u�	-�-�A�
��U�
��i�'��C�D�D��:�:�e�A�h��&�&�c��||zdk}t|�t|�}}|std��|t|zk\rtd��|j	�|j	�z
}|dk\r|d|z|zk\s|dkr|d|zz|k\r|dz
}t|t�tz
}|t|d�z|t|d�z}}t||�\}}d|z|kDsd|z|k(r
|dzdk(r|dz
}tj||�}|r|S|S)z-Correctly-rounded true division for integers.rzdivision by zeroz)int/int too large to represent as a floatrr)�abs�ZeroDivisionError�DBL_MIN_OVERFLOWrr�max�DBL_MIN_EXP�DBL_MANT_DIG�divmodrr)�a�b�negative�d�expr�r�results        r �truedivr1Us#����s�Q�w�H��q�6�3�q�6�q�A�
�� 2�3�3���q� � ��G�H�H�	
��������'�A��A�v�!�q�!�t�a�x�-�1�q�5�Q��Q�B��Y�!�^�	�Q����a��
��
,�C���S�D�!���a�3�s�A�;�.�q�A��!�Q�<�D�A�q�	��s�Q�w�!�A�#��(�q�1�u��z�	�Q���
�Z�Z��3�
�F��F�7�*�F�*r!c���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zej&d��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd>d�Zej&d��Zd�Zd�Z ejBd��Z"ejBejFe$jJdzdd �!�d"���Z&d#�Z'ejBejFe$jJd$zd%d �!�d&���Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.ejBd-��Z/ejBd.��Z0ejBd/��Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7ejBd6��Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>y=)?�LongTestc�.�|j|d�|tz}|tz
dz}d}d}ttj�tdzz�dz}||kr�|dz	dz}t	|||z
�}|jd|cxkxr	tknc�||z}||z}|dzr|d|zdz
z}ttj�tdzz�}||kr��|j||cxkxr|knc�tj�dkr|}|S)Nrrr��?)�
assertGreater�SHIFT�int�random�min�
assertTrue)�self�ndigits�nbits_hi�nbits_lo�answer�nbitsr/�bitss        r �getranzLongTest.getran{s�����7�A�&��U�?���e�#�a�'��������
�
��5�1�9�-�.��2���h����F�a�<�D��t�X��-�.�D��O�O�A��.��.�/��D�L�E��t�^�F��1�u��A��I��?�3���F�M�M�O�u�q�y�1�2�A��h��	
����E�5�X�5�6��=�=�?�S� ��W�F��
r!c��d}t|�D]&}|tztjdt�z}�(tj�dkr|}|S)Nrr5)�ranger7r9�randint�MASK)r=r@�is   r �getran2zLongTest.getran2�sH�����w��A���o�����4�)@�@�F� ��=�=�?�S� ��W�F��
r!c��|j}|j||��5t||�\}}||z||z}}||z||z}	}|||	d�|||d�|||d�||||z|zd�|dkDr!|jd|cxkxr|kncd�n |j||cxkxrdkncd�ddd�y#1swYyxYw)N��x�yzmultiplication does not commutez(divmod returns different quotient than /z#divmod returns different mod than %zx != q*y + r after divmodrzbad mod from divmod)�assertEqual�subTestr)r;)
r<rLrM�eqrr/�q2�r2�pab�pbas
          r �check_divisionzLongTest.check_division�s���
�
�
��
�\�\�A��\�
#��!�Q�<�D�A�q���T�1�Q�3��B���s�A�a�C��C��s�C�:�;��q�"�@�A��q�"�;�<��q�!�A�#��'�6�7��1�u�����Q�
��
�,A�B�����A�
��
�,A�B�$�
#�
#�s�BC�C
c���ttdtdz��ttttdz��z}|j	tdz�|D]A}|j|�}|D])}|j|�xsd}|j
||��+�C|j
dd�|j
dd�|j
dd	�|j
d
d�|j
dd
�|j
dd�|j
dd�|j
dd�|j
dd�|j
dd�|j
dd�|j
dd�y)Nr��l!Us/w��3alZW��3al+Q@{�d��B]Ol�Nl�O�Ol�Nl�t�e�o%g�q�Cgx<l�&�ghrsGlQ5��K�4+�o�-bklC�4+�o�-bkl��.#w�flD�&I-�Xl�Z��nSu9bl�c�v��
��<�Ilrd�FBu�'�pl�PhbIi|�$l1�m�{Wqi���8l�s~5^Fi�y�+l'H�
<{�Cl`<{�Cl�ED_5(�Nl�o�ybal=2zz6l�9�t�m)�listrE�	MAXDIGITS�KARATSUBA_CUTOFF�appendrCrU)r<�digits�lenxrL�lenyrMs      r �
test_divisionzLongTest.test_division�sr���e�A�y��{�+�,�t�E�:J�6F��6K�5M�0N�N���
�
�&��*�+��D����D�!�A����K�K��%�*����#�#�A�q�)���	
���8�/�	1����@�)�	+����@�)�	+����A�3�	5�	
���@�2�	4����@�3�	5�	
���N�I�6����/��;����.�	�:����.��?����.��?����,�n�=r!c���ttdd��ttttdz��z}|jtdztdzg�|D�cgc]}|tz��
}}|D]i}d|zdz
}|D]Z}||kr�	|j||��5d|zdz
}||z}d||zzd|zz
d|zz
dz}	|j
||	�ddd��\�kycc}w#1swY�nxYw)Nr��
�d)�abits�bbits)rYrEr[�extendr7rOrN)
r<r]�digitrBrer*rfr+rLrMs
          r �test_karatsubazLongTest.test_karatsuba�s���e�A�q�k�"�T�%�0@�0@�2�0E�+G�&H�H���
�
�'�"�,�.>��.D�E�F�+1�2�6�%���
�6��2��E��e��q� �A����5�=���\�\��U�\�;��e��q�(�A��A��A����
�.��u�*�&��u�*�&���A��$�$�Q��*�<�;����	3�<�;�s�C�7C"�"C+c��|j}|j|��5||dzd�||dz|�||dz|�||dz|�||dzd�||dz|�|||�|||z|�|||z|�|||zd�|||zd�|||zd�|||zd�||d|z�|||dz
�ddd�tdtz�D]x}d|z}|j|||��5|||z|z	|�|||z||z	�|||z||z�|||z||z	|z�|||z||dz
z�ddd��zy#1swY��xYw#1swY��xYw)N�rLrr
rr)rLr�p2)rNrOrEr7)r<rLrPrrls     r �check_bitop_identities_1z!LongTest.check_bitop_identities_1�s���
�
�
��
�\�\�A�\�
��q�1�u�a�L��q�1�u�a�L��q�1�u�a�L��q�2�v�q�M��q�2�v�r�N��q�2�v��r�N��q�A�2�#�J��q�1�u�a�L��q�1�u�a�L��q�1�u�a�L��q�A�2�v�q�M��q�A�2�v�r�N��q�A�2�v�r�N���r�1��r�6�N���r�Q�q�S�6�N�� �q��w��A��a��B�����Q�2��.��1��6�Q�;��"��1��7�A��F�#��1�r�6�1��6�"��1��s�7�A��F�a�K�(��1��s�7�A�"�q�&�	�M�*�/�.� �!�
��$/�.�s�B<E1�AE=�1E:�=F	c��|j}|j||��5|||z||z�|||z||z�|||z||z�|||z|z|�|||z||z�|||z||z�|||z||z||zz�|||z||z||zz�|||z||z||zz�ddd�y#1swYyxYw)NrK�rNrO)r<rLrMrPs    r �check_bitop_identities_2z!LongTest.check_bitop_identities_2s���
�
�
��
�\�\�A��\�
#��q�1�u�a�!�e���q�1�u�a�!�e���q�1�u�a�!�e���q�1�u�q�y�!���q�1�u���a�R��j�!��q�1�u���a�R��j�!��q�1�u�q�1�u�!�a�%��(�)��q�1�u�q�A�2�v�1�"�q�&�)�*��q�1�u�q�1�u�!��q�b��)�*�$�
#�
#�s�B%C�Cc�L�|j}|j|||��5|||z|z|||zz�|||z|z|||zz�|||z|z|||zz�||||zz||z||zz�||||zz||z||zz�ddd�y#1swYyxYw)N)rLrM�zro)r<rLrMrrrPs     r �check_bitop_identities_3z!LongTest.check_bitop_identities_3s���
�
�
��
�\�\�A��a�\�
(���A���{�A��Q��K�(���A���{�A��Q��K�(���A���{�A��Q��K�(��q�A��E�{�Q��U�q�1�u�-�.��q�A��E�{�Q��U�q�1�u�-�.�)�
(�
(�s�A0B�B#c
�X�tD]}|j|��tdtdz�}|D]v}|j	|�}|j|�|D]M}|j	|�}|j||�|j
|||j	||zdz���O�xy)Nrr)�specialrmrErZrCrprs)r<rLr]r^r_rMs      r �test_bitop_identitieszLongTest.test_bitop_identitiess����A��)�)�!�,���q�)�A�+�&���D����D�!�A��)�)�!�,����K�K��%���-�-�a��3��-�-�a��D�K�K����q�@P�4Q�R��r!c��g}d}|dkrd|}}|r,t||�\}}|jt|��|r�,|j�|xsdg}dd|ddddd�|zdj	d	�|D��zS)
Nrr�-�0b�0o��0x)r�rc�c3�&K�|]	}d|���y�w)�0123456789abcdefN�)�.0rHs  r �	<genexpr>z'LongTest.slow_format.<locals>.<genexpr>1s����=�f��)�!�,�f�s�)r)r\r8�reverse�join)r<rL�baser]�signr/s      r �slow_formatzLongTest.slow_format%s��������q�5��!��!�D���!�T�?�D�A�q��M�M�#�a�&�!��	������A�3���5�D�z��D�b�d�3�D�9�:��w�w�=�f�=�=�>�	>r!c��dtfdtfdtfdtfdtffD]�\}}||�}|j||j��5|j||�}|j||�ddd�|j|��5|jt|d�|�ddd���y#1swY�CxYw#1swY��xYw)Nrr}rcr~)rL�mapper)�gotr)
�bin�oct�str�repr�hexrO�__name__r�rNr8)r<rLr�r�r��expecteds      r �check_format_1zLongTest.check_format_13s�����H�q�#�h��S�	�B��:��C�y�P�L�D�&���)�C�����&�/�/��:��+�+�A�t�4��� � ��h�/�;����#��&�� � ��S�!��a�0�'�&�Q�:�:��'�&�s�%B8�C�8C	�C
	c���tD]}|j|��td�D]<}tdtdz�D]$}|j	|�}|j|��&�>y)Nrcr)rur�rErZrC)r<rLrHr^s    r �test_formatzLongTest.test_format<sY���A�����"���r��A��a��1��-���K�K��%���#�#�A�&�.�r!c���ddddzfg}|D]I\}}dD]?}dD]8}||z|z}|}|dk(r|tur|}	|jt|�|��:�A�K|jttd�|jttd	�|jttd
�|jttd�|jttdd
�|jttdd�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtd d�d�|jttd!d�|jttd"d�d#d$d%d&d'd(d)d*d+d,dzd,dzg}|D]}	|jttd-|	�� |jttd.�y#t$rY���wxYw)/N)�100000000000000000000l F�x:^V�e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000rcrd)r{�+rx)r{� �	z  		  rx�123L�123l�0Lz-37L�0x32Lr~�1L���+�000r�0o123�S�0x123i#�0b100rz	 0O123   z 0X123  z 0B100 �0z+0z-0�00�08z-012395is������i�l����������l����l����r�42uこんにちは)�
ValueErrorrNr8�assertRaises)
r<�LL�s�vr��prefix�ss�vv�
invalid_basesr�s
          r �	test_longzLongTest.test_longDs���'���C��(�
���D�A�q�$��7�F��$���*�B��B��s�{�q�
�':��R����(�(��R��"�5�
8�%��	
���*�c�6�2����*�c�6�2����*�c�4�0����*�c�6�2����*�c�7�B�7����*�c�4��4�����T�2���+�	
����U�A���*�����W�a��"�-�����W�a��#�.�����W�a��!�,�����[�!�,�b�1�����Z��+�S�1�����Y��*�A�.�����S�!��a�(�����T�1��q�)�����T�1��q�)�����T�1��q�)����*�c�4��3����*�c�9�a�8��!�5�&�(�!�5�&�(��S�&�1�c�6�'��
�
"�D����j�#�t�T�:�"�
	
���*�c�+K�L��O&����s�K�	K$	�#K$	c��Gd�d�}|jtt|��Gd�d�}|jt�5|jt|��d�ddd�y#1swYyxYw)Nc��eZdZd�Zy)�*LongTest.test_conversion.<locals>.JustLongc��y�N�*r��r<s r �__long__z3LongTest.test_conversion.<locals>.JustLong.__long__����r!N)r��
__module__�__qualname__r�r�r!r �JustLongr�s��
r!r�c��eZdZd�Zd�Zy)�+LongTest.test_conversion.<locals>.LongTruncc��yr�r�r�s r r�z4LongTest.test_conversion.<locals>.LongTrunc.__long__�r�r!c��y)N�r�r�s r �	__trunc__z5LongTest.test_conversion.<locals>.LongTrunc.__trunc__�s��r!N)r�r�r�r�r�r�r!r �	LongTruncr��s��
�
r!r�r�)r��	TypeErrorr8�assertWarns�DeprecationWarningrN)r<r�r�s   r �test_conversionzLongTest.test_conversion}s`��	�	�	
���)�S�(�*�5�	�	��
�
�0�
1����S���-�t�4�2�
1�
1�s�
!A4�4A=c���	t|�}	t|�}dj|||�}|j	|||�y#t$rd}Y�@wxYw#t$rd}Y�EwxYw)N�overflowzAError in conversion of integer {} to float.  Got {}, expected {}.)rrr�formatrN)r<r�actualr��msgs     r �check_float_conversionzLongTest.check_float_conversion�ss��	 ��1�X�F�	"�#�A��H�&�&,�f�Q���&A�	������3�/���	 ��F�	 ��
�	"�!�H�	"�s"�A�A�A�
A�A�Ac
�(�gd�}|D]:}|jt|�|�|jt|�|��<dD]K\}}td�D]8}|jttd|zd|zz��d|zd|zz��:�MdD]K\}}td�D]8}|jttd|zd|zz��d|zd|zz��:�Mtt�}dt
z}||zdz}|jt|�t�|jt|dz�t�|jt|dz
�t�|j
tt|�|jtd|z
�t�|j
tt|�|j
tt|dz
�|j
tt|�|j
tt|dz�|j
ttd|zdz
�|j
ttd|z�|j
tt||z�td	�D]m}d|zd
zdz}d|zdz}|jtt|��|�d|zd
z}d|zdz}|jtt|��|��o|dz
||dz|dz
||dz|dz
||dzd|zdz
d|z||zg}|j|�tdd
�D]-}tdd�D]}|jd|dzz|z���/|D]%}	|j|	�|j|	��'y)N)rrrl����l����l������l����l�����l)�rr)rr�rXr�rr�rbr)�r��r
r}rrr�))rrr�)rrr�r�r�)r�r}r�)r}r})�	r})rcr})��)r�r�)�
r�)rWr~)rr~r�rrdlr����r}�����5)rNrrEr8�DBL_MAX�DBL_MAX_EXPr�rrgr\r�)
r<�exact_valuesrLrM�p�int_dbl_max�	top_power�halfway�test_values�values
          r �test_float_conversionzLongTest.test_float_conversion�sR��	"���A����U�1�X�q�)����U�A�2�Y���+��
M�D�A�q��2�Y��� � ��U�1�a�4��q��>�%:�!;�Q��T�5��7�^�L��M�3�D�A�q��2�Y��� � ��U�1�a�4��q��>�%:�!;�Q��T�5��7�^�L��3��'�l���{�N�	���*�Q�.������{�+�W�5�����{�1�}�-�w�7�����w�q�y�)�7�3����-���8�����q��y�)�G�8�4����-����9����-��	�!��<����-��	�:����-��	�!��<����-���)��A�
�>����-���)��<����-��	�)�0C�D��s��A��1��	�"�Q�&�A��1��	�"�A����S��q��]�A�.��1��	�"�A��1��u��A����S��q��]�A�.��
��M�;��A�
��A�I�w��!���a�K��I�a�K�
�i�K��M�1�Y�;�	�)�(;�	
��	���<�(��r�1��A��4��%���"�"�1�q��t�9�q�=�1�&��!�E��'�'��.��'�'���/�!r!c��dD]&}|jtt|��|��(d}ddz}|}|||td�}dD]}|j	t
t||�� |jt|�t|�d�y)N)g���r��?�@�X123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345ri0u)�huge�mhuge�shuger)$�float(huge)�float(mhuge)z
complex(huge)zcomplex(mhuge)zcomplex(huge, 1)zcomplex(mhuge, 1)zcomplex(1, huge)zcomplex(1, mhuge)z	1. + hugez	huge + 1.z
1. + mhugez
mhuge + 1.z	1. - hugez	huge - 1.z
1. - mhugez
mhuge - 1.z	1. * hugez	huge * 1.z
1. * mhugez
mhuge * 1.z
1. // hugez
huge // 1.z1. // mhugezmhuge // 1.z	1. / hugez	huge / 1.z
1. / mhugez
mhuge / 1.z
1. ** hugez
huge ** 1.z1. ** mhugezmhuge ** 1.zmath.sin(huge)zmath.sin(mhuge)zmath.sqrt(huge)zmath.sqrt(mhuge)z(float(shuge) should not equal int(shuge))rNrr8rr�r�eval�assertNotEqual)r<rLr�r�r��	namespace�tests       r �test_float_overflowzLongTest.test_float_overflow�s���*�A����U�3�q�6�]�A�.�+����E�z�����!�E�E�4�P�	��D� 
���m�T�4��C�!�(	
���E�%�L�#�e�*�6�	8r!c���tjtj�}tt	d��gd�zD]Z}d|z}tj|�}|j||�||z}tj|�}|j||��\ddzddfD]L}|jttj|�|jttj|��Ny)Nrc)rd���'rrrr)	r�log10�erYrE�assertAlmostEqual�logr�r�)r<�LOG10Er.r�rr�r	�bads        r �	test_logszLongTest.test_logss������D�F�F�#����b�	�?�%7�7�C��#�I�E��J�J�u�%�E��"�"�5�#�.��V�|�H��(�(�5�/�C��"�"�3��1�8��%�Z�=�"�a�'�C����j�$�(�(�C�8����j�$�*�*�c�:�(r!c�p�
�|j}G�
fd�d��
gd�}dD]H}|j|dz
|dz
||dz|dzt|dz
�t|�t|dz�g��J|jddd	tjttj�g�td
�}|jddd	ddz|dz
||dzg�|j|D�cgc]}|��c}�|D]�}�
|�}|D]�}�
|�}||kD||kz
}|j
|||��5||kD||kz
}	|||	�|||k(|dk(�|||k7|dk7�|||k|dk�|||k|dk�|||kD|dkD�|||k\|dk\�ddd�����ycc}w#1swY��xYw)
Nc�<��eZdZd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	y)	�)LongTest.test_mixed_compares.<locals>.Ratc��t|t�r||_d|_yt|t�r�tjt|��\}}d}d}|r6tj||�}t|�}||z|z}||z}||z}|r�6|dk\r||z}d}n|}d|z}|dkr|}||_||_ytd|z��)Nr�rzcan't deal with %r)
�
isinstancer8rr-rr�frexpr#rr�)	r<r��fr�CHUNK�toprhrr-s	         r �__init__z2LongTest.test_mixed_compares.<locals>.Rat.__init__s����e�S�)�"�D�F��D�F���u�-��:�:�c�%�j�1�D�A�q��E��C�� �J�J�q�%�0�� #�A���"�e�|�u�4���U�
���U�
����A�v��1�H�������!��G���q�y��B���D�F��D�F�$�$8�5�$@�A�Ar!c���t|��s�|�}|j|jz|j|jz}}||kD||kz
S)N)rrr-)r<�otherrLrM�Rats    �r �_cmp__z0LongTest.test_mixed_compares.<locals>.Rat._cmp__GsL���!�%��-���J�E��v�v����'����%�'�'�)9�1���A��!�a�%�(�(r!c�*�|j|�dk(S�Nr�r�r<rs  r �__eq__z0LongTest.test_mixed_compares.<locals>.Rat.__eq__L����{�{�5�)�Q�.�.r!c�*�|j|�dk\Srrrs  r �__ge__z0LongTest.test_mixed_compares.<locals>.Rat.__ge__Nr!r!c�*�|j|�dkDSrrrs  r �__gt__z0LongTest.test_mixed_compares.<locals>.Rat.__gt__P����{�{�5�)�A�-�-r!c�*�|j|�dkSrrrs  r �__le__z0LongTest.test_mixed_compares.<locals>.Rat.__le__Rr!r!c�*�|j|�dkSrrrs  r �__lt__z0LongTest.test_mixed_compares.<locals>.Rat.__lt__Tr&r!N)
r�r�r�rrr r#r%r(r*)rs�r rrs(���&
B�P
)�

/�
/�
.�
/�
.r!r)rg����MbP?g�G�z��?r�g�?g@��x�D�Zb���ti)g�BgCg@Cr�g333333�?rrrr+i N)rLrM�Rcmp)rNrgr8r�maxsizerrO)r<rP�cases�trL�RxrM�Ryr,�xycmprs          @r �test_mixed_compareszLongTest.test_mixed_comparess����
�
�
��7	.�7	.�r8��+�A��L�L�!�c�'�1�s�7�A�q�3�w��C���a��c�(�C��F�C��!��H�6�
7�+�	���a��A�s�{�{�E�#�+�+�,>�?�@�
��J��
���a��A�q�E�z�1�Q�3��1�Q�3�7�8�
���%�(�%�Q�q�b�%�(�)��A��Q��B�����V���R��B��G�,���\�\�A���\�6���U�q�1�u�-�E��t�U�O��q�A�v�t�q�y�)��q�A�v�t�q�y�)��q�1�u�d�Q�h�'��q�A�v�t�q�y�)��q�1�u�d�Q�h�'��q�A�v�t�q�y�)�7�6����)�7�6�s�!
F'�+A/F,�,F5c
�F�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd	�d
�|jtdd	�d�|jtdd
�d�|jtdd
�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtd d�d
�|jtd d�d
�|jttd!d"�d�d!�|jttd!d"�d�d#�|jttd!d"�d�d$�|jttd!d"�d�d%�|jttd&d'�|jtd&d(�d)�|jtd&d*�d+�|jtdd,�d�|jtd d,�d
�|jtdd,�d-�|jtdd,�d.�|jtdd/�d-�|jtdd/�d.�|jtdd0�d1�|jtdd0�d.�|jtdd2�d3�|jtdd2�d.�|jttd&d4�|jtd&d5�d6�|jtdd7�d8�|jtd d7�d9�|jtdd7�d:�|jtdd7�d;�|jtdd<�d:�|jtdd<�d;�|jtdd=�d>�|jtdd=�d;�|jtdd?�d@�|jtdd?�d;�|jttd&dA�|jtdBdC�dD�|jttddE�|jttddF�|jttddG�|jttddH�|jtdItddJ�|jtdItddK�|jtdItddL�|jtdItddM�|jtdNtddO�|jtdPtddQ�t
tdR�tdS�dz�D�cgc]
}t|���c}t
tdT�tdU�dz�D�cgc]
}t|���c}zD]�}|dVvs�|jttdW|�|jttd|�|jttd|�|jttdXdYz|�|jttdXdYz|���dZD]8}d[D]1}|jt||�tt|�|���3�:ycc}wcc}w)\Ni�[r-�	123456789�,z123,456,789�_�123_456_789rrx�1r
z-1z-3z  1z -1z+3z +1z 3r�z 1rXrL�3�Xi��4d2i.���z-4d2�8xz     4d2z    -4d2����ber~�BEz-bez-BE���Iz,x�_x�	4996_02d2�_X�	4996_02D2�o�2322z-2322z-oz oz 2322z+oz+2322z,o�_o�
111_4540_1322r+�11z-11�10011010010z-10011010010z-bz bz 10011010010z+bz+10011010010z,b�90�_b�11_0000_0011_1001z1.3�_cz,cz+czCannot specify bothz_,z,_z_,dz,_dzCannot specify ',' with 's'z,szCannot specify '_' with 's'�_sr*rr�A�ZzbcdoxXeEfFgGn%rrrdzeEfFgG%)rrr
rd���rAi.�i�)
rNr�r8r�r��assertRaisesRegexrE�ord�chrr)r<rL�format_specr�s    r �test__format__zLongTest.test__format__rs������	�3�/��=�����	�3�/��=�����	�3�/��?�����	�3�/��?�	
�����3���-������C��$�/������4��%�0������D�)�5�1������4��%�0������D�)�5�1������4��%�0������D�)�5�1������3���.������C��$�/�	
�����3���-������3���-������c�*�E�2������s�+�V�4������d�+�Z�8������t�,�j�9������c�*�E�2������s�+�V�4������C��$�/������C��$�/������D�"�
�s�3�T�:������D�"�
�s�3�T�:������T�2����4�e�<������T�2����4�e�<����*�f�j�$�?�����
�D�1�;�?�����
�D�1�;�?�	
�����3���-������C��$�/������c�*�F�3������s�+�W�5������d�+�V�4������t�,�g�6������d�+�W�5������t�,�g�6������d�+�W�5������t�,�g�6����*�f�j�$�?�����
�D�1�?�C�	
�����3���.������C��%�0������c�*�M�:������s�+�^�<������d�+�]�;������t�,�n�=������d�+�^�<������t�,�n�=������d�+�^�<������t�,�n�=����*�f�j�$�?������t�,�.A�B�	
���*�f�a��7����*�f�a��6����*�f�a��6����*�f�a��6�	
���z�+@�&�!�T�R����z�+@�&�!�T�R����z�+@�&�!�U�S����z�+@�&�!�U�S����z�+H�&�RS�UY�Z����z�+H�&�RS�UY�Z�.3�3�s�8�S��X�a�Z�-H�I�-H��S��V�-H�I�-2�3�s�8�S��X�a�Z�-H�I�-H��S��V�-H�I�J�K��"2�2��!�!�*�f�a��E��!�!�*�f�a��E��!�!�*�f�b�+�F��!�!�*�f�a��f�k�J��!�!�*�f��3��i��M�J�%�K�G��� � ���{�!;�!'��e��k�!B�D�H�%��J��Is�0b�'bc���|jtttd��|jtttd��|jtttd��y)N�infz-inf�nan)r�rr8rr�r�s r �test_nan_infzLongTest.test_nan_inf�sD�����-��e�E�l�;����-��e�F�m�<����*�c�5��<�8r!c��|jt�5ddz}ddd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�y#1swY��xYw)NrrrXr
���r>�r�r$rN�r<r7s  r �test_mod_divisionzLongTest.test_mod_division�s���
�
�
�0�
1��A��A�2�	
����!�$�����1�%�����2�&�����B�'������#�����!�$�����!�$�����1�%�2�
1�s�B5�5B>c��ddz}|}|j||zd�|j||zd�|j||zd�|j||zd�|jd|zd�|jd|zd�|jd|zd�|jd|zd�|jd|z|dz	z|zd�|jd|z|dz	z|zd�|jd|z|dz	z|zd�|jd|z|dz	z|zd�|j||dzzd	�|jd
|z|zd
�||d�}dD]}|jtt||�� d
D]$}t||�}|j|dd|z��&dD]}|jtt||�� y)Nri@�r�r�ri�gԄ@gԄ�r5i@B)r�r�)r�r�zhuge / 1zhuge / 2z	huge / -1z	huge / -2zmhuge / 100zmhuge / 200)z1 / hugez2 / hugez	-1 / hugez	-2 / hugez100 / mhugez200 / mhugezexpected underflow to 0 from %r)zhuge / 0z	mhuge / 0)rNr�rr�r$)r<r�r�rr��	underflowr0�zeros        r �test_true_divisionzLongTest.test_true_division�s����E�z�����������c�*��������,�������t�,�������t�,�����T��3�'�����T��3�'�����U��C�(�����U��C�(����#��*���	�2�d�:�E�B����#��+��!��4��=�u�E����#��*���	�2�e�;�V�D����#��+��!��4��<�f�E��������+�S�1����'�D�.�D�0�'�:�!�E�2�	�7�H�
���m�T�8�Y�G�7�
7�I��)�Y�/�F����V�S�>��J�
L�7�.�D����/��t�Y�G�.r!c��|jt�5ddz}ddd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�y#1swY��xYw)Nrrr
rXr�rr_r`s  r �
test_floordivzLongTest.test_floordivs���
�
�
�0�
1��Q��A�2�	
�����#�����"�%�����"�%�����1�%�����A�&�����2�&�����2�&�����!�$�����A�&�����2�&�����2�&�����!�$�!2�
1�s�C=�=Dc
�b�|r)tt|�t|��dtzkry	tt	||��}	t||z�}|j||dj||||��y#t
$rd}Y�Bt$rd}Y�NwxYw#t
$rd}Y�Pt$rd}Y�\wxYw)z�Verify that the result of a/b is correctly rounded, by
        comparing it with a pure Python implementation of correctly
        rounded division.  b should be nonzero.rNr��zerodivisionz7Incorrectly rounded division {}/{}: expected {}, got {})	r&r#r(r�r1rr$rNr�)r<r*r+�
skip_smallr�r�s      r �
check_truedivzLongTest.check_truedivs����#�c�!�f�c�!�f�-��<��?��	&��G�A�q�M�*�H�	!��q�1�u�+�C�	
����3�)/�/5�v�a��H�c�/J�	L���	"�!�H� �	&�%�H�	&��
�	��C� �	!� �C�	!�s/�A7�B�7B�
B�B�B.�!
B.�-B.c��|jdd�|jdd�|jdd�|jdd�|jdd�|jddtzzd�|jdd	dttz
zz�|jddd
zzd�|jddd
dzz�dtttttz
f}|D]}t	|dz
|dz�D]h}|jddt|d�zzddt|d�zz�|jddt|d�zzddt|d�zz��j��ddd
ddd
d
zdddddddzfD]L}t	dd�D];}|j|tz|z|�|j|tz|z|��=�Nt	d�D]7}|jdtzdzdzddzzd|zzdtzdz��9|jdd�|jd d!�t	d"�D]8}|jd|dzzd|z�|jd|zd|dzz��:ddd#d
d$d%dd&dd
d
zdddddddzfD]2}t	dd�D]!}|jdtz|z|z|��#�4t	d'd(�D]}|j|dd)z��d*dd
zdd"zfD]�}t	d"�D]�}tjd|�}tj|d|zdz�}	|j||	�|j||	�|j||	�|j||	�����t	d+�D]�}
tjd"�}tjdd"�}tjd|z�}
tjdd|z�}|j|
|�|j|
|�|j|
|�|j|
|���y),N�{ri8���rXr>ige~rrLiNFrdíl90r
�Qri0&iCr�r
r���i��i����)�2���rc���i�
l�E,J_l�J�brrr}r~� i���i4ld(	r)	rkr�r(r'rEr&r%r9�	randrange)r<�basesr�r.�mrrH�Mr*r+r7�a_bits�b_bitsrLrMs               r �$test_correctly_rounded_true_divisionz-LongTest.test_correctly_rounded_true_division9s\��	
���3��"����4��#����1�a� ����1�b�!����1�a� ����;��K��7��?����5�&�1�|�k�/I�+J�"J�K����5��C��<��/����;��a��e��4��L�+��k�L�8�:���D��T�B�Y��r�	�2���"�"�5��C��Q�K��#7��q�#�s�d�A�,��9N�O��"�"�5��C��Q�K��#7��q�#�s�d�A�,��9N�O�3���Q��2�u�a��f��b�"�c�6�B��F�7�4�A��3��^���"�"�1�%5�#5��#9�1�=��"�"�1�%5�#5��#9�A�2�>�$�4��s��A�
����<��!� 3�U�:�1�c�6�A�A�q�D�H��l�?�5�0�
2�
�	
���1�d�#�	
���0�2G�H��t��A����r�A�a�C�y�"�a�%�0����r�1�u�b�1�Q�3�i�0��
�Q��1�a��R��U�A�s�F��b�"�c�6�B��F�7�4�A��3��^���"�"�1�l�?�1�#4�q�#8�!�<�$�4��s�B��A����q�!�T�'�*� ��"�c�'�2�t�8�,�A��4�[���$�$�Q��*���$�$�Q��!��A��.���"�"�1�a�(��"�"�A�2�q�)��"�"�1�q�b�)��"�"�A�2��r�*�
!�-��u��A��%�%�d�+�F��%�%�a��.�F�� � ��F��+�A�� � ��A�v�I�.�A����q�!�$����q�1�"�%�����r�1�%�����r�A�2�&�r!c��|jt�5ddzddd�|jt�5dddzzddd�|jt�5ddz	ddd�|jt�5dddzz	ddd�y#1swY�{xYw#1swY�`xYw#1swY�IxYw#1swYyxYw)Nr�r>rr)r�r�r�s r �test_negative_shift_countz"LongTest.test_negative_shift_count�s���
�
�
�z�
*��"�H�+�
�
�
�z�
*��A��I�,��+�
�
�
�z�
*��"�H�+�
�
�
�z�
*��A��I�,��+�
*�
+�
*��
*�
*��
*�
*��
*�
*�s.�B�
B"� B.�
B:�B�"B+�.B7�:Cc�@�|jdd�|jdd�|jt�5ddzddd�|jdddzzd�|jt�5dddzzddd�y#1swY�IxYw#1swYyxYw)Nrr
rr)rNr�r�r�s r �test_lshift_of_zerozLongTest.test_lshift_of_zero�s��������#�����!�$�
�
�
�z�
*�
��G�+�����q�D�y�)�1�-�
�
�
�z�
*�
�1��9���+�
*�+�
*��+�
*�s�B�5
B�B�Bc��|jdtjzd�|jdtjdzzd�y)Nrr�rNrr-r�s r �test_huge_lshift_of_zeroz!LongTest.test_huge_lshift_of_zero�s:��
	
����c�k�k�)�1�-�����s�{�{�Q��/��3r!rg�?F)�memuse�dry_runc�x�|jdtjdzzddztjz�y)Nrrr�)r<�sizes  r �test_huge_lshiftzLongTest.test_huge_lshift�s/��	
����s�{�{�T�1�2�A��I����4L�Mr!c��ddz}|jd|z	d�|jd|z	d�|jd|z	d�|jd|z	d�|jd	d
z|z	d�|jd	d
z|z	d�y)Nrrr�ri���r
ici����rr��rN)r<�
huge_shifts  r �test_huge_rshiftzLongTest.test_huge_rshift�s����$�Y�
�����z�)�1�-����#�*�,�b�1������+�Q�/����%�J�.��3�����C��:�-�q�1����!�S�&��J�.��3r!��g�?c���ddzdztjz}|j|tjdzz	ddzdz�|j|tjdzz	d�y)Nrr�r�i�rbrr)rr-rN)r<r�r�s   r �test_huge_rshift_of_hugez!LongTest.test_huge_rshift_of_huge�s]���c��R��C�K�K�/������#�+�+��/�2�Q�#�X��N�C�����#�+�+��"4�5�q�9r!c��|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jddzd	z	dd
z�|jddzd	z	dd
z�|jddzd	zd	z	dd
z�|jddzd	zd	z	dd
zd	z
�y)Nr�i��i��i1i���i���rr�r�r�r�s r �test_small_rshiftzLongTest.test_small_rshift�s������"�%�����S�)�����"�%�����S�)�����C�(�����t�,�����C�(�����t�,�����C��1��a��f�-����!�S�&��A���3��w�/����!�S�&�1�*��*�A�s�F�3����1�c�6�A�:��!�+�a��f�W�q�[�9r!c���|jdd�|jdd�|jdd�|jdd�|jddzdz	ddz�|jddzdz	ddz�|jdttzz
tz	t�|jtdz
ttzz
tz	t�y)	Nrr
rr>r�r��wr)rN�BASEr7r�s r �test_medium_rshiftzLongTest.test_medium_rshift�s�������!�$�����R�(�����A�&�����r�*�����C��1��a��f�-����!�S�&��A���3��w�/�	
���!�d�4�i�-�E�1�D�5�9����$��(�T�$�Y�.�5�8�4�%�@r!c��|jdd�|jdd�|jdd�|jdd�|jddzdz	ddz�|jddzdz	ddz�y)Nrr
rr�rv�`r�r�s r �test_big_rshiftzLongTest.test_big_rshift�s~������1�%�����b�)�����Q�'������+�����C��2��q�"�u�-����!�S�&��B���B���/r!c��|jdd�|jdd�|jdd�|jdd�|jddzdzddz�|jddzdzddz�y)	N�Ti����ibi����rr�rr�r�r�s r �test_small_lshiftzLongTest.test_small_lshift�s~������"�%�����S�)�����4�(�����e�,�����C��1��a��f�-����!�S�&��A���3��w�/r!c��|jdd�|jdd�|jdd�|jdd�y)NiTi���i�i<��r�r�s r �test_medium_lshiftzLongTest.test_medium_lshift�sB������%�(�����V�,�����F�+�����w�/r!c��|jdd�|jdd�|jdd�|jdd�|jddzdzddz�|jddzdzddz�y)	Nl�l�����l�l�����rr�rv�r�r�s r �test_big_lshiftzLongTest.test_big_lshift�s~������:�.�����k�2�����\�2�����
�6�����C��2��q�#�v�.����!�S�&��B���C���0r!c�x�ddz}|dz}|dz}|j||zd�|j||z
d�y)Nrrdr)�assertIs)r<r*r+�cs    r �#test_small_ints_in_huge_calculationz,LongTest.test_small_ints_in_huge_calculation�sC��
��H��
�B��F��
��E���
�
�a�!�e�Q���
�
�a�!�e�Q�r!c��|jtddd�d�|jdd�d\}}}|j||z|zd�|jtddd�d�|jdd�d	\}}}|j||z|zd�|jtdd
dd
zdz
�d�|jdd
zdd
zdz
zd�dd
dd
zdz
}}}|j||z|zd�y)NrcrX��r)rcrXr��r�r)rr�r�rd)r��pow)r<r*r�rzs    r �test_pow_uses_cached_small_intsz(LongTest.test_pow_uses_cached_small_intss����
�
�c�"�a��o�q�)��
�
�m�Q�'����1�a��
�
�a�1�f�q�j�!�$��
�
�c�!�R��-�q�1��
�
�-�q�1�$���1�a��
�
�a�1�f�q�j�!�$��
�
�c�!�S�!�S�&�1�*�-�q�1��
�
�a�3�h�!�s�(�Q�,�/��3��S�!�S�&�1�*�a�1���
�
�a�1�f�q�j�!�$r!c��ddz}|j|dz|zd�|j|dz|zd�|j||dzzd�|j||dzzd�td|zdz|�\}}|j|d�|j|d�td|zdz|�\}}|j|d�|j|d�td|zdz
|�\}}|j|d�|j|d�td|zdz
|�\}}|j|d�|j|d�y)	Nrcrdrrr�rXr
r>)r�r))r<�bigrr/s    r �"test_divmod_uses_cached_small_intsz+LongTest.test_divmod_uses_cached_small_intss<���C�i���
�
�s�Q�w�#�o�q�)��
�
�s�Q�w�3�&��*��
�
�c�c�Q�h�'��+��
�
�c�c�R�i�(�"�-��a�#�g��k�3�'���1��
�
�a����
�
�a����b�3�h��n�c�*���1��
�
�a����
�
�a����a�C�4�j�1�n�s�d�+���1��
�
�a����
�
�a����a�#�g��k�C�4�(���1��
�
�a����
�
�a��r!c	��tdd�D�]}|j||dz�|j||dz�|j||dz
�|j||dz�|j||dz�|j||dz�|j||dz�|j||�|j||dz�|j|tt|���|j||dzdz	t|����d}|j||z
d�|jd|zd�y)Nrp�rrr
rl)rEr�r8r�)r<rHs  r �test_small_intszLongTest.test_small_ints1s���r�3��A��M�M�!�Q��U�#��M�M�!�Q��U�#��M�M�!�Q��U�#��M�M�!�Q�!�V�$��M�M�!�Q��V�$��M�M�!�Q��U�#��M�M�!�Q��U�#��M�M�!�q�b�S�!��M�M�!�Q��T�"��M�M�!�S��Q��[�)��M�M�!�Q��T�1�W�c�!�f�-� �
���
�
�a�!�e�Q���
�
�a�!�e�Q�r!c��d}tdd�D]�}|j�}|j|tt	|�jd���|dk7r2|j
d|dz
zt|�cxkxrd|zknc�n|j|d�|dk7s��|j|dtjtjt|��tjd�z|z�z���|jdj�d�|jdj�d�|jdj�d�|jdj�d�|jd	j�d�d
D]�}d|z}|j|dz
j�|�|jd|z
j�|�|j|j�|dz�|j|j�|dz�|j|dzj�|dz�|j|dz
j�|dz���y)Ng�����|�=i��i�z-0brrrr
r)rrXrr~ror�rv�!�?�@��)rErrN�lenr��lstripr;r#r�floorr	)r<�tinyrL�krHr*s      r �test_bit_lengthzLongTest.test_bit_lengthCs
�����v�u�%�A�����A����Q��C��F�M�M�%�$8� 9�:��A�v�����A�a�C��C��F� 9�Q��T� 9�:�� � ��A�&��A�v�
� � ��A��
�
�����Q��(����!��4�t�;�)=�%=�>�&�$	
���!���)�1�-����!���)�1�-����"���*�A�.����!���)�1�-����"���*�A�.�<�A��1��A����a��c�-�-�/��3����a��c�-�-�/��3����a�^�^�-�q��s�3����q�b�_�_�.��!��4����a��c�-�-�/��1��5����q�b��d�.�.�0�!�A�#�6�=r!c���tdd�D]:}|j|j�t|�j	d���<dD]�}d|z}|j|j�d�|j|dz
j�|�|j|dzj�d�|j|dz
d	zj�|d
z
���y)Ni���rr9)rcror�r��Ai�iZi��rrr�r
i�r})rErN�	bit_countr��count)r<r*r.s   r �test_bit_countzLongTest.test_bit_countes����u�d�#�A����Q�[�[�]�C��F�L�L��,=�>�$�>�C��3��A����Q�[�[�]�A�.����a�!�e�.�.�0�#�6����a�"�f�/�/�1�1�5����q�1�u��m�6�6�8�#��'�B�>r!c��
�idd�dd�dd�dd�dd�dd�dd�d	d�d
d�dd�dd�dd�d
d�dd�dd�dd�dd�dddd��}tddd�D]_}|j�D]J\}}t||zd�}||z}|j||�|j	t|�t��L�a|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtd d�d�|jtd!d�d"�|jtd#d�d"�|jtd$d�d%�|jtd&d�d%�|jtd'd�d(�|jtd)d*�d+�|jtd,d*�d-�|jtd.d�d/�|jtd.d�d0�|jtd.d*�d1�|jtd.d2�d3�|jtd.d4�d5�|jtd.d6�d7�|jtd.d8�d9�|jtd.d:�d;�|jtd.d<�d=�|jtd.d>�d?�|jtd.d@�d�|jtd.dA�d�|jtd.dB�d�tdd"�D]M}td|zdCzd*�}d|zdDz}|j||�|j	t|�t��Otd�D]e}td"�D]U}	tjdEdF�}
t|
|�}|j||
�|j	t|�t��W�gdGdHdIdJdd"zdd"zfD]}|jtdK|�dK�� td"�D]T}	tjdEdF�}
t|
�}|j||
�|j	t|�t��VdL}|D]}
|jttd|
�� y)MNrrrrXrrbr�rcr
r}r�r�r�r�rWrrwr~)ro��i����ir
ij���ri8���ik���rSi���i���i����1rr�3rd��rurt�i,iԡr>i�i��i��l!l!l�~!l�!r�l�!rpl`!i����l!r^l'�!i����lz+i����lv|orsl,Gxi����i�i���iF�i��i���rr�r�r�r�i{�)�brianr�y)rE�items�roundrNr��typer8r9rxr�r�)r<�	test_dict�offsetr�r�r�r��expectrrHrL�huge_n�
bad_exponentsrs              r �
test_roundzLongTest.test_roundps ��8�Q�q�8�!�A�8�q��8�A�a�8��1�8�a��8��r�8��R�8�!"�2�8�'(��8�-/��8�46�r�8�;=�b�8�BD�R�8�IK�B�8���8��r�8�&(�R�B�8�	��D�#�r�*�F�!���)���1��A�f�H�b�)���V�8��� � ��h�/��
�
�d�3�i��-�	*�+�	
����t�R��$�/�����t�R��$�/�����s�B���.�����s�B���+�����s�B���+�����r�2���*�����q�"��q�)�����q�"��q�)�����r�2���*�����r�2���*�����r�2���,�����s�B���-�����s�B���-�����s�B���-�����s�B���-�����v�r�*�F�3�����v�r�*�F�3�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�B�/��=�����{�C�0�+�>�����{�C�0�!�4�����{�C�0�!�4�����{�D�1�1�5��r�3��A���A�����+�C���U�V�^�F����S�&�)��M�M�$�s�)�S�)�	 ��q��A��3�Z���$�$�V�U�3���A�q�k��� � ��a�(��
�
�d�3�i��-�	 ���u�g�u�a��f�b�#�g�E�F����U�7�F�3�W�=�F��s��A�� � ���/�A���(�C����S�!�$��M�M�$�s�)�S�)�	�+�
��A����i���1�5�r!c�8��d=�fd�	}idd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�}||d%d&�'�idd�dd�dd�d	d
�dd�d
d�dd�dd(�dd)�dd�dd�dd*�dd�dd+�dd,�d!d-�d#d.�}||d/d&�'�dddddddd0d1d2d3�
}||d%d�'�dddddd*dd+d1d4d3�
}||d/d�'��jtdjdd%d�'��jtdjdd%d&�'��jtdjdd/d�'��jtdjdd/d&�'��jtdjd5d%d�'��jtdjd5d/d�'��jdjdd%�d6��jdjd7d%�d8��jdjd7d%�d9��jdjd7d%d&�'�d:��jtdjdd%�Gd;�d<t�}�jdjd|d%��d��jdjd|d/��d6�y)>NFc	�b��dd�}|j�D]�\}}	�j|jt|�||��|�t|�dk(r(|dk(r#|s!	�j|j�|�	�j||t|�||��|���y#t$r"}tdj
|||��|�d}~wwxYw#t$r }tdj
|��|�d}~wwxYw#t$r"}tdj
|||��|�d}~wwxYw)	Nc���|dk(rt|�}n|dk(rtt|��}t�fd�D��S)N�littler�c3�4�K�|]}�|dzz	dz���y�w)r}�Nr�)r�rHrs  �r r�zSLongTest.test_to_bytes.<locals>.check.<locals>.equivalent_python.<locals>.<genexpr>�s�����>��1�a�1�Q�3�h�$�.��s�)rE�reversed�bytes)r�length�	byteorder�signed�orders`    r �equivalent_pythonz@LongTest.test_to_bytes.<locals>.check.<locals>.equivalent_python�s;�����(�!�&�M�E��%�'�$�U�6�]�3�E��>��>�>�>r!�r�z4failed to convert {} with byteorder={} and signed={}rr��+failed to convert {} with default argumentszmCode equivalent from docs is not equivalent for conversion of {0} with byteorder byteorder={1} and signed={2}�F)r�rN�to_bytesr��	Exception�AssertionErrorr���testsr�r�r�rr��errr<s       �r �checkz%LongTest.test_to_bytes.<locals>.check�sI���
?�#(�+�+�-���h�C��$�$��
�
�c�(�m�Y�v�
�N� �"��x�=�A�%�)�u�*<�V�4��(�(�����(�C�
O��$�$�)� �#�h�-��6�K� ��)#0��
!�C�(�N����i��8�:�?B�C��C��%�4�,�I�#�V�D�\�+�03�4��4��!�O�(�%�%+�V�D�)�V�%D�F�LO�O��O�sG�-B)�  C�%D�)	C�2C�C�	D� C;�;D�	D.�D)�)D.r�r�r
�������r���������r�����������������r������������s����������������r�Tr���������������r�������)
rrr�r�r�r�r���r��rr!rbsss�����c��eZdZy)�&LongTest.test_to_bytes.<locals>.SubStrN�r�r�r�r�r!r �SubStrr:���r!rr�)r�rr�rNr�)r<r��tests1�tests2�tests3�tests4rs`      r �
test_to_byteszLongTest.test_to_bytes�s����%	O�P
�
�w�
�
�w�
�
��
�
�'�	
�

�'�
�
�+�

�
��
�
��
�
�+�
�
�+�
�
��
�
��
�
�;�
�
�O�
�
�?�
� 
�O�!
�"
�o�#
��&	�f�e�D�)�
�
�w�
�
�w�
�
��
�
�'�	
�

�'�
�
�+�

�
��
�
��
�
�+�
�
�+�
�
��
�
��
�
�;�
�
�K�
�
�?�
� 
�O�!
�"
�o�#
��&	�f�h�t�,����������"�
��	�f�e�E�*����������"�
��	�f�h�u�-����-�#����E�%��P����-�#����E�$��O����-�#����H�U��S����-�#����H�T��R����-�"����5���O����-�"����8�E��R����!���a��/��5����!���a��/�1H�I����!���a��/�1H�I����"���q�%���=�0�	2����-�!���q�%�@�	�S�	����!���a����7��A����!���a���)9�:�C�@r!c�
��dM�fd�	}idd�dd�dd�dd�d	d�d
d�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"d#d$d%��}||d&d'�(�idd�dd�dd�dd�d	d�d
d�dd�d
d�dd�dd�dd�d)d�d*d�dd�dd�d	d�dd �d!d"d#d$d+��}||d,d'�(�ddddd-ddd d.d"d/d0�}||d&d�(�ddddd-ddd d.d"d/d1�}||d,d�(�Gd2�d3t�}�jt|jdd&��|��j	|jdd&�d��jt|jdd&d�(��|��j	|jdd&d�(�d��jt|jdd,��|��j	|jdd,�d��jt|jdd,d�(��|��j	|jdd,d�(�d��j	tjgd4�d&d'�(�d#��j	tjd4d&d'�(�d#��j	tjtd5�d&d'�(�d#��j	tjtd5�d&d'�(�d#��j	tjt
jd6d5�d&d'�(�d#��j	tjtd5�d&d'�(�d#��jttjdgd&��jttjdgd7��jttjdgd8��jttjd9d&��jttjd:d&��jttjdd&��jttjdd&d'��jt|jd9d&��jt|jd:d&��jt|jdd&��jttjdd&d'�Gd;�d<t�}|jdd&�}�jt|�|��j	|d=�Gd>�d?t�}	|	jdd&�}�jt|�|	��j	|d��j	t|d@dA�dB�GdC�dD�}
GdE�dF�}GdG�dH�}GdI�dJ�}
�j	tj|
��d��jttj|���jttj|���jttj|
��GdK�dLt�}�j	tjd|d&��d��j	tjd|d,��d�y)NNFc	�2��dd�}|j�D]w\}}	�jtj|||��|�|dk(r(|s&	�jtj|�|�	�j||||��|��yy#t$r"}tdj
|||��|�d}~wwxYw#t$r }tdj
|��|�d}~wwxYw#t$r"}tdj
|||��|�d}~wwxYw)Nc���|dk(rt|�}n|dk(rtt|��}td�t�D��}|r|r|ddzr|ddt	|�zzz}|S)Nr�r�c3�2K�|]\}}||dzz���y�w)r}Nr�)r�rHr+s   r r�zULongTest.test_from_bytes.<locals>.check.<locals>.equivalent_python.<locals>.<genexpr>Gs����G�-F�T�Q���Q�q�S��-F�s�r
r�rr})rYr��sum�	enumerater�)�
byte_arrayr�r��little_orderedrs     r r�zBLongTest.test_from_bytes.<locals>.check.<locals>.equivalent_pythonAso����(�%)�*�%5�N��%�'�%)�(�:�*>�%?�N��G�Y�~�-F�G�G���n�.��2D�t�2K���a��N� 3�3�3�3�A��r!r�z6failed to convert {} with byteorder={!r} and signed={}r�r�zeCode equivalent from docs is not equivalent for conversion of {0} with byteorder={1!r} and signed={2}r�)r�rNr8�
from_bytesr�r�r�r�s       �r r�z'LongTest.test_from_bytes.<locals>.check@s7���

�#(�+�+�-���h�C��$�$����t�Y�v��F� �"���%�f�4��(�(��N�N�4�0�$�&�	C��$�$�)�$�	�&�I� ��-#0��
!�C�(�P����i��8�:�?B�C��C��%�4�,�I�#�V�D�\�+�03�4��4��!�C�(�P����i��8�:�@C�C��C�sG�(B�
%B?�3C+�	B<�B7�7B<�?	C(�C#�#C(�+	D�4D�Dr!rr�sr�rr	r�r
rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr)rrrrr�Tr�rr)r
rrr
r�r�rr)r!r�r�r�r�r�r�r�rrr)r!r�r�r�r�r�r	r�r
rrc��eZdZy)�'LongTest.test_from_bytes.<locals>.myintNrr�r!r �myintr(�rr!r))r�rrr�Bzbigzlittler{�c��eZdZd�Zy)�(LongTest.test_from_bytes.<locals>.myint2c�4�tj||dz�S)Nr)r8�__new__)�clsr�s  r r/z0LongTest.test_from_bytes.<locals>.myint2.__new__�s���{�{�3���	�2�2r!N�r�r�r�r/r�r!r �myint2r-�s��
3r!r2rc��eZdZd�Zy)�(LongTest.test_from_bytes.<locals>.myint3c��d|_y)N�bar)�foo)r<r�s  r rz1LongTest.test_from_bytes.<locals>.myint3.__init__�s	�� ��r!N)r�r�r�rr�r!r �myint3r4�s��
!r!r8r7�noner6c��eZdZd�Zy)�,LongTest.test_from_bytes.<locals>.ValidBytesc��y)Nr�r�r�s r �	__bytes__z6LongTest.test_from_bytes.<locals>.ValidBytes.__bytes__�s��r!N�r�r�r�r=r�r!r �
ValidBytesr;�s��
r!r?c��eZdZd�Zy)�.LongTest.test_from_bytes.<locals>.InvalidBytesc��y)N�abcr�r�s r r=z8LongTest.test_from_bytes.<locals>.InvalidBytes.__bytes__�s��r!Nr>r�r!r �InvalidBytesrA�s��
r!rDc��eZdZy)�.LongTest.test_from_bytes.<locals>.MissingBytesNrr�r!r �MissingBytesrF�s�r!rGc��eZdZd�Zy)�.LongTest.test_from_bytes.<locals>.RaisingBytesc��ddzy)Nrrr�r�s r r=z8LongTest.test_from_bytes.<locals>.RaisingBytes.__bytes__�s	���A�r!Nr>r�r!r �RaisingBytesrI�s��
r!rKc��eZdZy)�(LongTest.test_from_bytes.<locals>.SubStrNrr�r!r rrMrr!rr�)r8r�r�r&rN�	bytearray�array�
memoryviewr�r�r��getattrr$r�)r<r�rrrrr)r2rHr8r?rDrGrKrs`              r �test_from_byteszLongTest.test_from_bytes?s���+	C�\
���
��Q�
�
��
�
�Q�	
�

��
�
�R�

�
��
�
�T�
�
�T�
�
��
�
�S�
�
��
�
��
�
��
�
��
� 
��!
�"
��#
�$ �"�#�%�+
��.	�f�e�D�)�
���
��Q�
�
��
�
�Q�	
�

��
�
�R�

�
��
�
�T�
�
�T�
�
��
�
�S�
�
��
�
��
�
��
�
��
� 
��!
�"
��#
�$ �"�#�%�+
��.	�f�h�t�,�����������"�
��	�f�e�E�*�����������"�
��	�f�h�u�-�	�C�	�	
�
�
�d�5�+�+�G�U�;�<�e�D�����)�)�'�5�9�1�=��
�
���!�!�'�5��!�?�@�%�	I�����)�)�'�5��)�G��K��
�
�d�5�+�+�G�X�>�?��G�����)�)�'�8�<�a�@��
�
�d�5�+�+��X�e�,�-�.�/4�	6�����)�)�'�8�E�)�J�A�N�����N�N�;��d�N�;�V�	E�����N�N�;��d�N�;�V�	E��������o�&��d�(�<�=C�	E��������o�&��d�(�<�=C�	E��������K�K��_�-�u�T�(�C�DJ�	L���������'��t�(�=�>D�	F����*�c�n�n�s�e�U�C����*�c�n�n�q�c�9�E����*�c�n�n�q�c�<�H����)�S�^�^�R��?����)�S�^�^�V�U�C����)�S�^�^�Q��>����)�S�^�^�Q��t�D����)�U�%5�%5�r�5�A����)�U�%5�%5�v�u�E����)�U�%5�%5�q�%�@����)�S�^�^�Q��t�D�	3�S�	3�
���g�u�-���
�
�d�1�g�v�&�����A��	!�S�	!�
���g�u�-���
�
�d�1�g�v�&�����A�������E�6�2�E�:�	�	�	�	�	 ��	�	�	
������
��5�q�9����)�S�^�^�\�^�D����)�S�^�^�\�^�D����+�S�^�^�\�^�L�	�S�	��������V�E�]�;�Q�?����������1A�B�A�Fr!c��tdd�D]<}|jdd��}|jtj	|d��|��>y)Nrpr�rTr�)rEr�r�r8r&)r<rHr+s   r �test_from_bytes_smallzLongTest.test_from_bytes_small
sA���r�3��A��
�
�1�T�
�*�A��M�M�#�.�.��4�.�8�!�<� r!c��|jdj��|jdj��|jdj��y)Nr
rr)r;�
is_integerr�s r �test_is_integerzLongTest.test_is_integers;��������)�*�������(�)�������(�)r!c��Gd�dt�}td�D�cgc]
}|d���}}tt|�D]}|j|d��ycc}w)Nc��eZdZdd�Zy)�<LongTest.test_access_to_nonexistent_digit_0.<locals>.Integerc�@�tj||�}d|_|S)Nr7)r8r/r7)r0r�r<s   r r/zDLongTest.test_access_to_nonexistent_digit_0.<locals>.Integer.__new__s���{�{�3��.�� ����r!N)rr1r�r!r �IntegerrZs��
r!r\rr)r8rE�maprN)r<r\rH�integersrs     r �"test_access_to_nonexistent_digit_0z+LongTest.test_access_to_nonexistent_digit_0sR��	�c�	�).�d��4��1�G�A�J���4��S�(�#�A����Q��"�$��5s�Ac��dD]M}dD]F}|jt||z�t�|jt||z	�t��H�Oy)N)TF)rr)rNr�r8)r<r�rs   r �test_shift_boolzLongTest.test_shift_bool'sH��"�E���� � ��e�u�n�!5�s�;�� � ��e�u�n�!5�s�;� �#r!c
�R�Gd�dt�}ddddtjdzdd|d	�g}|D]r}|j�\}}|j	||ft|�df�|j	t|�t�|j	t|�t��ty)
Nc��eZdZy)�-LongTest.test_as_integer_ratio.<locals>.myintNrr�r!r r)rd/rr!r)rcrrsrTFr�)r8rr-�as_integer_ratiorNr�)r<r)r�r��	numerator�denominators      r �test_as_integer_ratiozLongTest.test_as_integer_ratio.s���	�C�	��Q��Q����a���u�e�B�i�H���E�%*�%;�%;�%=�"�I�{����i��5��E�
�A��G����T�)�_�c�2����T�+�.��4�	r!c	���tdd�D]M}d|zdz
}|j||��5|j|dzdd|zzd|dzzz
dz�ddd��Oy#1swY�ZxYw)Nri�)�bitlenrr)rErOrN)r<rjrs   r �test_squarezLongTest.test_square8su��
�A�s�m�F��f���!�A����V�q��1�� � ��A���1�v�:�&�1��!��+<�=��A�C�2�1�$�1�1�s�(A�A'	c
�N�|jtjtjj
�dddtdz
dfdtz
dftdftdfttzdz
dfttzdfg	}|D]a\}}|j|�5|j|j�tjtj|zz�ddd��cGd�dt�}|j|jtjj
�|D]_\}}|j|�5|j||�j�|j|j|zz�ddd��ay#1swY��xYw#1swY�yxYw)	N)rr)rr)r
rrrrXc��eZdZy)�'LongTest.test___sizeof__.<locals>.MyIntNrr�r!r �MyIntrn^rr!ro)
rNr8�__itemsize__r�int_info�sizeof_digitr�rO�
__sizeof__�
__basicsize__)r<r�r�r=ros     r �test___sizeof__zLongTest.test___sizeof__Dse������)�)�3�<�<�+D�+D�E�
���
�!�V�Q�K�
�t�V�Q�K�
�1�I��U�A�J�
�$�Y��]�A��
�$�Y��N�
��*�N�E�7����e�$�� � ��$�$�&��%�%��(8�(8�7�(B�B��%�$�*�	�C�	�	
����+�+�S�\�\�-F�-F�G�)�N�E�7����e�$�� � ��%�L�+�+�-��'�'�%�*<�*<�w�*F�F��%�$�*�%�$��%�$�s�AF�AF�F	�F$	N)T)?r�r�r�rCrIrUr`rirmrprsrvr�r�r�r�r�r�r�requires_IEEE_754r�rrr3rXr\rarergrkr~r�r��cpython_onlyr��
bigmemtestrr-r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrRrTrWr_rarhrkrur�r!r r3r3ss4���0�
C�#>�N+�.+�6+�/�
S�>�1�'�6M�r5�"0�"
���C0��C0�J8�>;�$Z*�x_D�B9�
&� H�D%�&L�<
���Y'��Y'�v��
���4��4�
����W������d�*�8�U�K�N�L��N�4�
����W������c�)�$��F�:�G��:�
:� 
A�0�0�0�1�
��� �� �
���%��%� 
������0 �$ 7�D	C�H6�TCA�JLG�\
���=��=�*�
#�<�5�
C�$r!r3�__main__)#�unittestrrrr9rrOrq�bits_per_digitr7r�rGr[rZrurlrErHr\rr&r�rr��min_expr'rr(r%rr1�TestCaser3r��mainrks0r �<module>rsf����
�
���	���#�#���E�z���a�x����
�	�
�a��D�$�!�)�%7�9K�
L����	�q��w��A��N�N�2��6��	�q��B�
���� ��1�Q�B�� ��#8��1�Q�B��#8�8�8��

�.�.�
�
���n�n�$�$���n�n�$�$���~�~�&�&���k�>�A��l�(B�Q�(F�$G�G��*'�\+�<u�x� � �u�p/�z���H�M�M�O���]2!��#8s�<
D9�
D>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists