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_complex.cpython-312.opt-1.pyc
�

h�e|�����ddlZddlZddlmZddlmZmZddlmZddlm	Z	m
Z
mZddlZe
d�Ze
d�ZdZGd	�d
ej"�Zedk(rej(�yy)�N)�support)�VALID_UNDERSCORE_LITERALS�INVALID_UNDERSCORE_LITERALS)�random)�atan2�isnan�copysign�inf�nan))��?�?�)r�)rr)��?r
)�r
c��eZdZd�Zd)d�Zd�Zd)d�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej8d��Zd�Zd�Zd�Z d�Z!d�Z"ej8d��Z#d �Z$d!�Z%d"�Z&ej8d#��Z'ej8d$��Z(ej8d%��Z)ej8d&��Z*d'�Z+y()*�ComplexTestc���t|t�r�t|t�rktjj	||j
|j
�tjj	||j|j�ytjj	||j
|�tjj	||jd�yt|t�rWtjj	|||j
�tjj	|d|j�ytjj	|||�y)Nr)�
isinstance�complex�unittest�TestCase�assertAlmostEqual�real�imag��self�a�bs   �8/opt/alt/python312/lib64/python3.12/test/test_complex.pyrzComplexTest.assertAlmostEquals����a��!��!�W�%��!�!�3�3�D�!�&�&�!�&�&�I��!�!�3�3�D�!�&�&�!�&�&�I��!�!�3�3�D�!�&�&�!�D��!�!�3�3�D�!�&�&�"�E��!�W�%��!�!�3�3�D�!�Q�V�V�D��!�!�3�3�D�"�a�f�f�E��!�!�3�3�D�!�Q�?�c���t|�t|�kDr||}}|dk(rt|�|kS|dk(rt|�|kS|jt||z
|z�|k�y)z+Return true iff floats x and y "are close".rN)�abs�
assertTrue�r�x�y�epss    r�assertCloseAbszComplexTest.assertCloseAbs(sc���q�6�C��F�?��a�q�A���6��q�6�C�<����6��q�6�C�<������Q�q�S�!�G��s�*�+r c��d}t|�st|�rt|�r6t|�r+y||k(r%|dk7rytd|�td|�k(ry|dz
}|j|j||��y)a#assert that floats x and y are identical, in the sense that:
        (1) both x and y are nans, or
        (2) both x and y are infinities, with the same sign, or
        (3) both x and y are zeros, with the same sign, or
        (4) x and y are both finite and nonzero, and x == y

        z&floats {!r} and {!r} are not identicalNrrz: zeros have different signs)rr	�fail�format)rr%r&�msgs    r�assertFloatsAreIdenticalz$ComplexTest.assertFloatsAreIdentical4sr��7����8�u�Q�x��Q�x�E�!�H��
�!�V��C�x���#�q�!�X�c�1�%5�5���5�5���	�	�#�*�*�Q��"�#r c��|j|j|j|�|j|j|j|�y)z.Return true iff complexes x and y "are close".N)r(rrr$s    r�assertClosezComplexTest.assertCloseKs6�����A�F�F�A�F�F�C�0����A�F�F�A�F�F�C�0r c��||z}|dk7r:||z}|j||�|j|�}|j||�|dk7r;||z}|j||�|j|�}|j||�yy)z8Compute complex z=x*y, and check that z/x==y and z/y==x.rN)r/�__truediv__)rr%r&�z�qs     r�	check_divzComplexTest.check_divPs���
��E����6��A��A����Q��"��
�
�a� �A����Q��"���6��A��A����Q��"��
�
�a� �A����Q��"�	r c	���tdd�D�cgc]
}t|���}}|D��cgc]}|D]}t||����}}}|D]}|D]}|j||���|jtdd�d�|jtdd�d�td�D]H}|jtt	�t	��tt	�t	����J|jtj
dd�d	�|jttjd
d�|jttjdd
�dtftdfttffD]f\}}tdd�t||�z}|jt|j��|jt|j���hycc}wcc}}w)N����gZb���ti��?�N�~h�d�@r��?��?r)�range�floatrr4rrr1�assertRaises�	TypeError�operator�truediv�NANr#rrr)	r�i�simple_realr%r&�simple_complex�
denom_real�
denom_imagr2s	         r�test_truedivzComplexTest.test_truediv^s���).�r�1��6�A�u�Q�x�6��6�1<�R�A�k�R��'�!�Q�-�R�-�R��R��	%�A�#�
%�����q�!�$�
%�	%�	
���w�u�e�,�d�3����w�v�v�.��5��s��	8�A��N�N�7�6�8�V�X�6�"�6�8�V�X�6�
8�	8�	
���w�2�2�4��>��E����)�X�%5�%5�r�4�@����)�X�%5�%5�t�R�@�()�3�x�#�q��C��:�&F�	+�"�J�
���1�
��
�J� ?�?�A��O�O�E�!�&�&�M�*��O�O�E�!�&�&�M�*�	+��)7��Rs
�G*�G/c�~�tD](\}}|jt�5||zddd��*y#1swY�5xYw�N)�
ZERO_DIVISIONr@�ZeroDivisionErrorrs   r�test_truediv_zero_divisionz&ComplexTest.test_truediv_zero_divisionxsE��!�	�D�A�q��"�"�#4�5�
��A��
�
�	�
�
���3�<	c���|jt�5ddzddd�|jt�5ddzddd�|jt�5ddzddd�|jt�5ddzddd�|jt�5ddzddd�y#1swY��xYw#1swY�xYw#1swY�hxYw#1swY�QxYw#1swYyxYw�Nrr8rr�r@rA�rs r�
test_floordivzComplexTest.test_floordiv}s���
�
�
�y�
)�	�
�t��	�
�
�
�y�
)�	�
�c�M�	�
�
�
�y�
)�	�
�a�K�	�
�
�
�y�
)�	��D�M�	�
�
�
�y�
)�	�
�$�K�	�	�	�	��	�	��	�	��	�	��	�	��:�B1�B=�C	�?C�"C!�1B:�=C�	C�C�!C*c�~�tD](\}}|jt�5||zddd��*y#1swY�5xYwrL�rMr@rArs   r�test_floordiv_zero_divisionz'ComplexTest.test_floordiv_zero_division�sD��!�	�D�A�q��"�"�9�-�
��Q��
�
�	�
�
�rPc	��|jtjdddz�d�|jtjdd�t�|jtjdd�t�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�t
dd�D]�}|dz}|jtj|d	z|�d�|jtj|d	z|�d�|jtjt||�|�d�|jtjt||�|�d���|jtjdd�t�|jtjdd�t�|jtjdd�t�|jtjdd�t�|jttjdd�|jttjdd�|jttjdd�|jttj dd�|jtj"dd�d�|jtj"dd�d�|jtj$dd�d�|jtj$dd�d�|jtj"dd
�d�y)Nrri'FTy@@r:gY@r
�@)�assertIsr�__eq__�__lt__�NotImplemented�__ne__r>�__le__�__gt__�__ge__r@rArB�lt�le�gt�ge�eq�ne)rrE�fs   r�test_richcomparezComplexTest.test_richcompare�s����
�
�g�n�n�T�1�e�8�4�e�<��
�
�g�n�n�T�4�0�.�A��
�
�g�n�n�T�4�0�.�A��
�
�g�n�n�T�4�0�$�7��
�
�g�n�n�T�4�0�%�8��
�
�g�n�n�T�4�0�%�8��
�
�g�n�n�T�4�0�$�7��q�#��	B�A��E�	�A��M�M�'�.�.��2��q�1�4�8��M�M�'�.�.��2��q�1�5�9��M�M�'�.�.���A���:�E�B��M�M�'�.�.���A���:�D�A�	B�	
�
�
�g�n�n�T�4�0�.�A��
�
�g�n�n�T�4�0�.�A��
�
�g�n�n�T�4�0�.�A��
�
�g�n�n�T�4�0�.�A����)�X�[�[�$��=����)�X�[�[�$��=����)�X�[�[�$��=����)�X�[�[�$��=��
�
�h�k�k�$��-�t�4��
�
�h�k�k�$��-�u�5��
�
�h�k�k�$��-�u�5��
�
�h�k�k�$��-�t�4��
�
�h�k�k�$��,�e�4r c	�����d
�fd�	}tdd�D]H}d|z}d|z�|d|ztdd��fd��|d|ztdd�d�t|���J|d	td
d�d��y)Nc����|D]l}||z}t||�}�jtj||�||���jtj||�||���nyrL)rr\r]r`)�n�deltas�is_equalr�deltarEr2rs       �r�checkz6ComplexTest.test_richcompare_boundaries.<locals>.check�sf����
I����I���A�t�$���
�
�g�n�n�Q��2�H�U�O�D��
�
�g�n�n�Q��2����4G�H�	
Ir r�
�4��ec���|�zdk(S)Nr�)rq�mults �r�<lambda>z9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>�s�������9J�r c��y)NFrx�rqs rrzz9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>���r li����rc��y)NTrxr|s rrzz9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>�r}r )r)r>r?)rrrrE�powrys`   @r�test_richcompare_boundariesz'ComplexTest.test_richcompare_boundaries�s}���	I��q�"��	J�A��q�&�C���6�D��!�s�(�E�!�S�M�+J�K��!�s�(�E�!�S�M�+>��a��I�		J�
	�g�u�T�1�~�'9�:r c��|jdtd�ztdd��|jdtd�ztdd��|jtt
jdddz�|jtt
jdd�|jtt
jdd�y�Nr=r���rs��)�assertEqual�intrr@�
OverflowErrorrB�addrArTs r�test_addzComplexTest.test_add�s�������c�"�g��w�r�1�~�6�����c�"�g��w�r�1�~�6����-����r�2�t�8�D����)�X�\�\�2�t�<����)�X�\�\�4��<r c��|jdtd�z
tdd��|jdtd�z
tdd��|jtt
jdddz�|jtt
jdd�|jtt
jdd�yr�)r�r�rr@r�rB�subrArTs r�test_subzComplexTest.test_sub�s�������c�"�g��w�r�1�~�6�����c�"�g��w�q�!�}�5����-����r�2�t�8�D����)�X�\�\�2�t�<����)�X�\�\�4��<r c��|jdtd�ztdd��|jdtd�ztdd��|jtt
jdddz�|jtt
jdd�|jtt
jdd�y)Nr=�rr�rsr�)r�r�rr@r�rB�mulrArTs r�test_mulzComplexTest.test_mul�s�������c�"�g��w�q�"�~�6�����c�"�g��w�q�"�~�6����-����r�2�t�8�D����)�X�\�\�2�t�<����)�X�\�\�4��<r c���|jt�5ddzddd�|jt�5ddzddd�|jt�5ddzddd�|jt�5ddzddd�|jt�5ddzddd�y#1swY��xYw#1swY�xYw#1swY�hxYw#1swY�QxYw#1swYyxYwrRrSrTs r�test_modzComplexTest.test_mod�s���
�
�
�y�
)�	�
�d�O�	�
�
�
�y�
)�	�
�S�L�	�
�
�
�y�
)�	�
�Q�J�	�
�
�
�y�
)�	��4�L�	�
�
�
�y�
)�	�
��J�	�	�	�	��	�	��	�	��	�	��	�	�rVc�~�tD](\}}|jt�5||zddd��*y#1swY�5xYwrLrXrs   r�test_mod_zero_divisionz"ComplexTest.test_mod_zero_division�sD��!�	�D�A�q��"�"�9�-�
��A��
�
�	�
�
�rPc��|jttdd�|jttdd�|jttdd�|jttdd�|jttdd�yrR)r@rA�divmodrTs r�test_divmodzComplexTest.test_divmod�sf�����)�V�T�4�8����)�V�T�3�7����)�V�T�1�5����)�V�S�$�7����)�V�Q��5r c�X�tD]!\}}|jtt||��#yrL)rMr@rAr�rs   r�test_divmod_zero_divisionz%ComplexTest.test_divmod_zero_division�s)��!�	7�D�A�q����i���A�6�	7r c��|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jttdd	�|jttdd
�|jtd	d�d�|jtd	d�d
�|jt
tddd�|jttdd�|jttd	d�|jttdd	�|jtd	d�d�d}|j|dzd
�|j|dzdzd
�|jdd
�|jdd
�	d|z|jd�	ddz|jd�|j|dz|dz�|j|dz|dz�|j|dz|dz�|jdd
�d}|jt
t||d�tjtjd
ztjd
z
tjtjd
ztjd
zf}|D]=}|D]6}|j||��5t||�}	||z	||zddd��8�?y#t$rY��JwxYw#t$rY��CwxYw#t$rY�>wxYw#t$rY�GwxYw#1swY��xYw)Nrr
rr;ry@�@rr�r=i���y���ryZb���ti�?��?y�;f���?�;f���?y�p=
ף
@���Q�@r8z,should fail 0.0 to negative or complex powery@��ii�������yffffff@ffffff@�rr)
rrr�r@rN�
ValueErrorr�rAr*�sys�maxsize�subTestr)rrr�valuesrr�cs       r�test_powzComplexTest.test_pow�s-�����s�4����4����s�4����4�����T�7�+�S�1�����Q���s�+�����R����,����+�S�$��;����+�S�$��>����s�2�r�{�D�1����s�2�s�|�Q�/����*�c�4��t�<����-��h��A����)�S�"�d�3����)�S�$��3����s�2�s�|�-S�T�������b��!�$�����b����a�(�����1�%�����!�$�	F��!�G�
�I�I�D�E�	F��4�L�
�I�I�D�E�	
����c��1��8�,�����d��A��I�.�����c��1��8�,�����A�&������*�c�1�a��3��+�+�s�{�{�1�}�c�k�k�!�m��;�;�,�����Q������Q��@���	�D��

���\�\�t�$�\�7�	���d�+�A���T�	���Q��	�	�

�	��;!�	��	��!�	��	��8)�����)�����	�	�sl�L2�5M�
M0�M� M!�2	L?�>L?�	M�M�	M	�M0�M	�M0�!	M-	�*M0�,M-	�-M0�0M9c	�"�tdd�tdd�tdt�ttd�g}gd�}|D]�}|D]�}|j||��5	||z}	|t	|�z}	|t|�z}|jt
|�t
|��|jt
|�t
|��ddd�����y#t$rd	}Y��wxYw#t$rd	}Y��wxYw#t$rd	}Y��wxYw#1swY��xYw)
Ng@g(@g\�n��Tg;%_��n�Tg�r)i��r6������r�rrru���)�value�exponent�overflow)r�INFr�r�r?r��str)rr��	exponentsr�r��int_pow�	float_pow�complex_pows        r�%test_pow_with_small_integer_exponentsz1ComplexTest.test_pow_with_small_integer_exponents0s3��
�C����G�X�&��D�#���C���	
��=�	��	E�E�%�
E���\�\���\�A�E�-�"'��/��/�$)�5��?�$:�	�1�&+�W�X�->�&>���$�$�S��^�S��\�B��$�$�S��%5�s�7�|�D�E�E�
E�	E��
)�-�",��-��)�/�$.�	�/��)�1�&0��1��E�E�sm�D�C� C#�/C4�=AD�C 	�D�C 	� D�#C1	�.D�0C1	�1D�4D	�?D�D	�D�Dc���td�D]3}|jtt�dzt�dz���5|jtdd��|jd�y)Nr:g���ư>rr=)r>r#rr)rrEs  r�test_boolcontextzComplexTest.test_boolcontextLsX���s��	G�A��O�O�G�F�H�t�O�V�X��_�E�F�	G����G�C��-�-�.�����r c�X�|jtdd�j�d�y)Ng333333@g������#@y333333@������#�)r/r�	conjugaterTs r�test_conjugatezComplexTest.test_conjugateRs"�������c�*�4�4�6��Ar c	����Gd�d�}|jt|d��d�|jtt|d��|jtti�|jtt|d��|jtt|d��|jttt	��|jtt|d�t	��|jtd�d�|jtd�d	�|jtd
�d	�|jtd�d	�|jtd	�d	�|jtdd�d�|jtdd�d�|jtdd
�d�|jtdd�d�|jtdd�d�|jtdd
�d�|jtdd�d�|jtdd�d�|jtdd
�d�|jtd�d�|jtd
�d�|jtd�d�|jtd�d�|jtdd�d�|jtd
d�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd
�d�|jtdd
�d�|jtd�d�|jtd�d�|jt�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd �d!�|jtd"�d#�|jtd$�d%�|jtd&�d!�|jtd'�d�|jtd(�d�|jtd)�d�|jtd*�d+�|jtd,�d�|jtd-�d�|jtd.�d�|jtd/�d0�|jtd1�d�Gd2�d3t�}|jt|d4��d4�|jtd5d6�7�d8�|jtd8�9�d8�|jtd8d6�7�d:�|jtdd;�7�d<�d=�}|j|tdd�j�|d��|j|tdd>�j�|d>��|j|tdd�j�|d��|j|td>d�j�|d>��d!}|jt|�|u�~|jttdd�|jttdd�|jttd?�|jttd@�|jttd@�|jttd@�|jttdA�|jttd�|jtdBtd�|jttdC�|jttdD�|jttddE�|jttddF�|jttddE�|jttdG�|jttdH�|jttdI�|jttdJ�|jttdK�|jttdL�|jttdM�|jttdN�|jttdO�|jttdP�|jttdQ�|jttdR�|jtdStddTid�|jtdUtdddTi�|jttdV�|jttdW�|jttdX�|jttdY��t�|jtdZ�d4�|jttd[�Gd\�d]t��G�fd^�d_�}|j�t|��Gd`�da�}|jt|db��dF�|jt|dc�|dd��7�d8�|jtt|d��Gde�df�}|jt|dF��dg�|jtdh|dF��di�|jtt|dTdjz��|jttdh|dTdjz��Gdk�dl�}|jtt|��|jttdh|��Gdm�dnt�}	Gdo�dpt�}
Gdq�d3t�}|jt|	d��dr�|j!t"�5|jt|
d��ds�ddd�|jtt|d��y#1swY�+xYw)tNc��eZdZd�Zd�Zy)�(ComplexTest.test_constructor.<locals>.NSc��||_yrL�r��rr�s  r�__init__z1ComplexTest.test_constructor.<locals>.NS.__init__Ws��E�t�zr c��|jSrLr�rTs r�__complex__z4ComplexTest.test_constructor.<locals>.NS.__complex__Xs��$�*�*�#4r N)�__name__�
__module__�__qualname__r�r�rxr r�NSr�Vs��9�4r r�y�?$@g�?ry@�?z1+10jrsy$@g$@ry��Q�	@g��Q�	@i:y�s@r
rry��Q�	@y��Q�	��1r8�1jr=z-1r�z+1z(1+2j)��?@z
(1.3+2.2j)y�������?������@z3.14+1Jy��Q�	@�?z
 ( +3.14-6J )y��Q�	@�z ( +3.14-J )y��Q�	@�z ( +3.14+j )�Jz( j )z+Jz( -j)y��z1e-500z-1e-500jz-1e-500+1e-500jz1-1jr<�1Jc��eZdZy)�.ComplexTest.test_constructor.<locals>.complex2N�r�r�r�rxr r�complex2r��s�r r�r��r�y1@7@)ry1@G@�@@y�@c��t|d�S)z7Function that produces different results for 0. and -0.��)r)r%s r�split_zerosz1ComplexTest.test_constructor.<locals>.split_zeros�s����C�=� r ��z1+1jjy@@�znot 'NoneType'�z39�2�*z1+z1+1j+1jz--z(1+2jz1+2j)z1+(2j)z	(1+2j)123r%z1j+2�1e1ejz1e++1ejz)1+2j(z7first argument must be a string or a number, not 'dict'ruz,second argument must be a number, not 'dict'z1..1jz1.11.1jz1e1.1j��11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111u ( 1+1j ) uこんにちはc��eZdZy)�-ComplexTest.test_constructor.<locals>.EvilExcNr�rxr r�EvilExcr�����r r�c���eZdZ�fd�Zy)�1ComplexTest.test_constructor.<locals>.evilcomplexc�����rLrx)rr�s �rr�z=ComplexTest.test_constructor.<locals>.evilcomplex.__complex__�s����
r N)r�r�r�r�)r�s�r�evilcomplexr��s���
r r�c��eZdZd�Zd�Zy)�,ComplexTest.test_constructor.<locals>.float2c��||_yrLr�r�s  rr�z5ComplexTest.test_constructor.<locals>.float2.__init__��	��"��
r c��|jSrLr�rTs r�	__float__z6ComplexTest.test_constructor.<locals>.float2.__float__�����z�z�!r N)r�r�r�r�r�rxr r�float2r�����
#�
"r r�gE@g1@g7@c��eZdZd�Zd�Zy)�-ComplexTest.test_constructor.<locals>.MyIndexc��||_yrLr�r�s  rr�z6ComplexTest.test_constructor.<locals>.MyIndex.__init__�r�r c��|jSrLr�rTs r�	__index__z7ComplexTest.test_constructor.<locals>.MyIndex.__index__�r�r N)r�r�r�r�r�rxr r�MyIndexr��r�r r�yE@�{y�^@E@i�c��eZdZd�Zy)�+ComplexTest.test_constructor.<locals>.MyIntc��y)Nr�rxrTs r�__int__z3ComplexTest.test_constructor.<locals>.MyInt.__int__�s��r N)r�r�r�r�rxr r�MyIntr��s��
r r�c��eZdZdZd�Zy)�.ComplexTest.test_constructor.<locals>.complex0z:Test usage of __complex__() when inheriting from 'complex'c��y)N�E@rxrTs rr�z:ComplexTest.test_constructor.<locals>.complex0.__complex__s��r N�r�r�r��__doc__r�rxr r�complex0r��s
��L�
r rc��eZdZdZdd�Zd�Zy)�.ComplexTest.test_constructor.<locals>.complex1z3Test usage of __complex__() with a __new__() methodc�4�tj|d|z�S)Nru)r�__new__r�s  rrz6ComplexTest.test_constructor.<locals>.complex1.__new__s�����t�Q�u�W�5�5r c��|SrLrxrTs rr�z:ComplexTest.test_constructor.<locals>.complex1.__complex__s���r N)r
)r�r�r�rrr�rxr r�complex1rs��E�
6�
r rc��eZdZdZd�Zy)r�z`Make sure that __complex__() calls fail if anything other than a
            complex is returnedc��yrLrxrTs rr�z:ComplexTest.test_constructor.<locals>.complex2.__complex__s��r Nrrxr rr�z.ComplexTest.test_constructor.<locals>.complex2s��
#�
r r��@)r�rr@rA�objectrrrr#r�r�r?�assertRaisesRegex�type�	Exceptionr��assertWarns�DeprecationWarning)rr�r�r�r�r�r�r�r�rrr�s           @r�test_constructorzComplexTest.test_constructorUs
���	5�	5�	
�����E��+�U�3����)�W�b��h�7����)�W�b�1����)�W�b��g�6����)�W�b��e�4����)�W�f�h�7����)�W�b��m�V�X�F����w�w�/��7����w�r�{�E�2����w�t�}�e�4����w�r�{�E�2����w�u�~�u�5����w�q��}�e�4����w�q��}�e�4����w�q����6����w�q��}�e�4����w�q��}�e�4����w�q����6����w�s�2���6����w�s�2���6����w�s�4�0�%�8����w�w�/��9����w�t�}�g�6����w�s�|�X�6����w�s�|�X�6����w�w��3�W�=����w�t�S�1�7�;����w�s�A���9����w�s�A���9����w�r�5�1�8�<����w�s�E�2�H�=����w�r�4�0�%�8����w�s�D�1�5�9����w�s�|�T�2����w�t�}�b�1����w�y�1�-����w�t�}�b�1����w�t�}�b�1����w�x�0�$�7����w�|�4�h�?����w�y�1�7�;����w��7��A����w�~�6��@����w�~�6��@����w�s�|�R�0����w�w�/��4����w�t�}�b�1����w�w�/��5����w�x�0�*�=����w�z�2�J�?����w�'8�9�;�G�������(�3��������+�%�w�%����w�x��~�6��=����w�B�R�8�&�A����w�F�3�V�<����w�F��<�f�E����w�D�t�<�e�D�
	!�	
����W�R��_�%9�%9�:�K��O�L�����W�R��%5�%:�%:�;�[��=M�N�����W�R��_�%9�%9�:�K��O�L�����W�S�"�%5�%:�%:�;�[��=M�N��������
�a��(�
����)�W�c�3�7����)�W�a��5�	
���*�g�y�9����)�S�$�/����)�S�$�/����)�U�D�1����*�g�r�2����)�W�d�3����y�*:�G�T�J����*�g�t�4����*�g�v�6����)�W�c�3�7����)�W�c�2�6����)�W�a��5����*�g�t�4����*�g�y�9����*�g�t�4����*�g�w�7����*�g�w�7����*�g�x�8����*�g�{�;����*�g�s�3����*�g�v�6����*�g�w�7����*�g�y�9����*�g�x�8�����E��a��U�A�	�	
����:��Q��1��	�
	
���*�g�w�7����*�g�y�9����*�g�x�8�	
����g�g�.�/��9�����!C�D�d�K�	
���*�g�/O�P�	�i�	�	�	�	
���'�7�K�M�:�	"�	"�	
���w�v�c�{�3�R�8����w�F�3�K�f�S�k�J�F�S����)�W�f�T�l�;�	"�	"�	
���w�w�r�{�3�Y�?����w�s�G�B�K�8�+�F����-��'�!�T�'�2B�C����-��#�w�q�$�w�7G�H�	�	�	
���)�W�e�g�6����)�W�c�5�7�;�	�w�	�
	�w�	�	�w�	�	
�����"��.��4�
�
�
�0�
1�	8����W�X�b�\�2�B�7�	8����)�W�h�r�l�;�	8�	8�s�"u�u%c�j�d}|j|j�|�|jt|j��t�Gd�dt�}|d�}|j|j�d�|jt|j��t�y)Nr�c��eZdZy)�6ComplexTest.test___complex__.<locals>.complex_subclassNr�rxr r�complex_subclassrr�r r)r�r�rr)rr2rs   r�test___complex__zComplexTest.test___complex__s������������!�,�����a�m�m�o�.��8�	�w�	�
�V�$���������&�1�����a�m�m�o�.��8r c	��Gd�dt�}ddtttfD�]�}ddtttfD�]�}|j||��5t||�}|j	|j
|�|j	|j|�|||�}|jt|�|�|j	|j
|�|j	|j|�t|||��}|jt|�t�|j	|j
|�|j	|j|�|t||��}|jt|�|�|j	|j
|�|j	|j|�ddd�������y#1swY���xYw)Nc��eZdZy)�>ComplexTest.test_constructor_special_numbers.<locals>.complex2Nr�rxr rr�r$r�r r�rr�)r%r&)	rr�rDr�r-rrr\r)rr�r%r&r2s     r� test_constructor_special_numbersz,ComplexTest.test_constructor_special_numbers"s|��	�w�	��d�C�#��s�*�	=�A��$��c�T�3�.�
=���\�\�A��\�+�=���1�
�A��1�1�!�&�&�!�<��1�1�!�&�&�!�<� ��A��A��M�M�$�q�'�8�4��1�1�!�&�&�!�<��1�1�!�&�&�!�<����A��/�A��M�M�$�q�'�7�3��1�1�!�&�&�!�<��1�1�!�&�&�!�<� ���A��/�A��M�M�$�q�'�8�4��1�1�!�&�&�!�<��1�1�!�&�&�!�<�=�=�
=�	=�=�=�s
�E/G�Gc�|�|jtdtd�j�d�|jtdtd�j�d�|jtdtd�j�d�|jtdtd�j�d�y)Nrz-nanr�z-nanjz	-nan-nanj)r�r	rrrrTs r�*test_constructor_negative_nans_from_stringz6ComplexTest.test_constructor_negative_nans_from_string9s�������"�g�f�o�&:�&:�;�S�A�����"�g�g�&6�&;�&;�<�c�B�����"�g�k�&:�&?�&?�@�#�F�����"�g�k�&:�&?�&?�@�#�Fr c
�v��tD]o�t�fd�dD��r�|jt��t	���|jt��t�jdd����qtD]7��dvr�t�fd�dD��r�|jtt���9y)Nc3�&�K�|]}|�v���
y�wrLrx��.0�ch�lits  �r�	<genexpr>z/ComplexTest.test_underscores.<locals>.<genexpr>B������4�R�r�S�y�4����xXoObB�_r�)�0_7�09_99c3�&�K�|]}|�v���
y�wrLrxr s  �rr$z/ComplexTest.test_underscores.<locals>.<genexpr>Hr%r&)	r�anyr�r�eval�replacerr@r�)rr#s @r�test_underscoreszComplexTest.test_underscores?s����,�	N�C��4�8�4�4�� � ����t�C�y�9�� � ����w�s�{�{�3��7K�/L�M�	N�/�	<�C��&�&���4�8�4�4��!�!�*�g�s�;�		<r c
��tdd�D]c}|jt|�tt|d���|dz}|jt|�tt|d����e|j	td�d�y)Nr��r�@ry��>A�r�)r>r��hashr�assertNotEqual)rr%s  r�	test_hashzComplexTest.test_hashKsu���s�B��	<�A����T�!�W�d�7�1�a�=�&9�:�
��H�A����T�!�W�d�7�1�b�>�&:�;�	<�
	
���D��.��3r c
��tdd�D��cgc]%}tdd�D]}t|dz|dz����'}}}|D]=}|j|jdz|jdzzdzt|���?ycc}}w)Ni�����	r2g@rur�)r>rrrrr")rr%r&�nums�nums     r�test_abszComplexTest.test_absSs���-2�2�a�[�N��%��1�+�N�Q���"��a��d�#�N�#�N��N��	R�C��"�"�C�H�H�a�K�#�(�(�A�+�$=�3�#F��C��Q�	R��Os�*Bc��|jfd�}|dd�|dd�|dd|j��|td	t�d
�|td	t�d�|ttd�d
�|ttt�d�|ttd�d�|tdt�d�|ttt�d�|ttt�d�|tdt�d�|tdt�d�|tdt�d�|jdttd���|jdttd���|jdttd���|jdttd���y)Nc�L�|t|�|�|t|�|�yrL��reprr���v�expected�test_fns   r�testz'ComplexTest.test_repr_str.<locals>.testY����D��G�X�&��C��F�H�%r ��?@z(1+6j)y�?�z(1-6j)y��z(-1+-0j))rBrz(1+infj)z(1-infj)rz(inf+1j)z(-inf+infj)z(nan+1j)z(1+nanj)z
(nan+nanj)r�infjz-infj�nanjy��y@)r�r4rr�rDr>�rrCs  r�
test_repr_strzComplexTest.test_repr_strXs\��&*�&6�&6�	&�	
�T�8���T�8���W�j�$�*=�*=�>��W�R��
�z�*��W�R�#��
�
�+��W�S�!�_�j�)��W�c�T�3�
��/��W�S�!�_�j�)��W�Q��_�j�)��W�S�#�
��-��W�c�T�C�4�
 �,�/��W�Q��_�f�%��W�Q���
�w�'��W�Q��_�f�%�����g�d�4�j�1�2�����g�d�4�j�1�2�����W�T�#�Y�/�0�����G�D��H�-�.r c�R�|jfd�}|tdd�d�|tdd�d�|tdd�d�|tdd�d	�|tdd�d
�|tdd�d�|tdd�d�|tdd�d
�y)Nc�L�|t|�|�|t|�|�yrLr=r?s   rrCz5ComplexTest.test_negative_zero_repr_str.<locals>.testvrDr rrr�r�z(-0+1j)r�z-1jz(-0-1j)�0jz-0jz(-0+0j)z(-0-0j))r�rrHs  r�test_negative_zero_repr_strz'ComplexTest.test_negative_zero_repr_strts���&*�&6�&6�	&�	
�W�R��_��%��W�S�"�
�	�*��W�R��
��&��W�S�#�
�	�*��W�R��_��%��W�R��
��&��W�S�"�
�	�*��W�S�#�
�	�*r c���Gd�dt�}|jdd�|j|dd��d�|jt|dd���t�y)Nc��eZdZy)�-ComplexTest.test_pos.<locals>.ComplexSubclassNr�rxr r�ComplexSubclassrP�r�r rQrErr7)rr�r\r)rrQs  r�test_poszComplexTest.test_pos�sW��	�g�	�	
����$�'����/�!�Q�/�/��6��
�
�d�O�A�q�1�1�2�G�<r c�(�|jdd�y)Ny��)r�rTs r�test_negzComplexTest.test_neg�s������%�(r c���|jdj�d�|jdj�d�|jdj�d�|jdj�d�|jtd	t�j�d
tf�|jttd	�j�td
f�y)Nr�)rr[y�?�)rg�r)rr[���)rr�rr)r��__getnewargs__rr�rTs r�test_getnewargszComplexTest.test_getnewargs�s������$�.�.�0�*�=����$�.�.�0�+�>����"�,�,�.�
�;����#�-�-�/��=������C��7�7�9�C��:�F������a��7�7�9�C��:�Fr c���d\}}|jt|jd�tdd��|jt|jd�tdd��y)N)r
rVr�rr�)r�rr)r�z1�z2s   r�test_plus_minus_0jzComplexTest.test_plus_minus_0j�sO�����B�����r�w�w��,�e�B��n�=�����r�w�w��,�e�C��o�>r c�j�d}d}d}|j|jd�|j|jd�|j|jd�|j|jd�|j|jd�|j|jt�y)NrVy��y��r�g�)r-rrr�)r�z0rZr[s    r�test_negated_imaginary_literalz*ComplexTest.test_negated_imaginary_literal�s���
��
��
��
	
�%�%�b�g�g�t�4��%�%�b�g�g�t�4��%�%�b�g�g�t�4��%�%�b�g�g�t�4��%�%�b�g�g�t�4��%�%�b�g�g��t�4r c��|jtd�ttd��|jtd�tdt��|jtd�ttt��y)N�1e500rz-1e500jz-1e500+1.8e308j)r�rr�rTs r�
test_overflowzComplexTest.test_overflow�s[�������)�7�3��+<�=������+�W�S�3�$�-?�@�����!2�3�W�c�T�3�5G�Hr c	��dddddddttg	}||D�cgc]}|��c}z
}|D]u}|D]n}t||�}tt|��}|j	|j
|j
�|j	|j|j��p�wtd�td�}}td|�td|�}
}	|D]�}|D]z}t||�}tt|��}|j	d|j
zd|j
z�|j	d|jzd|jz��|��ycc}w)	Nrg�ir9g�(�
�0�?go���!	@g�d~�QJr
r)	r�rDrr>r-rrr?r-)r�valsr@r%r&r2�	roundtripr
rrFrGs           r�test_repr_roundtripzComplexTest.test_repr_roundtrip�sQ���V�V�V�V�V�T�3��L���T�"��!��"�"���	F�A��
F���A�q�M��#�D��G�,�	��-�-�a�f�f�i�n�n�E��-�-�a�f�f�i�n�n�E�	
F�	F���<��u��S���S�#�&���S�(9�d���	D�A��
D���A�q�M�� ��a��M�	��-�-�c�A�F�F�l�.1�I�N�N�.B�D��-�-�c�A�F�F�l�.1�I�N�N�.B�D�

D�	D��#s�
Ec�f�|jtdd�td��|jtdd�td��|jtdd�td��|jtdd�td��|jtdd�td��|jtdd�td��|jtdd�td��|jtdd	�td��d
}|jt|d�t|��|jt|d�t|��|jt|d	�t|��|jt|d�t|��tdd
�}|jt|d�t|��|jt|d�t|��|jt|d	�t|��|jt|d�t|��tdd�}|jt|d�t|��|jt|d�t|��|jt|d	�t|��|jt|d�t|��|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/�d0�|jtd1d2�d3�|jtd1d4�d5�|jtd1d6�d7�|jtd1d8�d9�|jtd1d:�d;�|jtd1d<�d=�|jtd1d>�d?�|jtd@dA�dB�|jtd1dC�dD�|jtd1dE�dD�|jtd1dF�dG�|jtdHdF�dI�|jtdHdJ�dK�|jtdHdL�dM�|jtdNdL�dO�|jtdPdQ�dR�|jtdSdT�dU�|jtdSdV�dW�|jtdSdX�dY�|jtdSdZ�d[�|jtd\d�d]�|jtd\d^�d_�|jtdSd`�da�|jtdSdb�da�|jtdSdc�dd�|jtdSde�dd�|jtdfdg�dh�|jtdfdZ�di�|jtdfdj�dk�|jtdfdV�dl�|jtdfd^�dm�|jtdfdn�do�|jtdfdp�dq�|j	t
drjds�|j	t
d1jdt�duD]#}|j	t
drj|��%|jdvjdw�dx�|jtttt�d%�dy�|jttdzt�d%�d{�|jtttdz�d%�d|�|jtttd}�d%�d~�|jtttt�d'�d�|jttdzt�d'�d��|jtttdz�d'�d��|jtttd}�d'�d��|jtttt�d%�d��|jttdzt�d%�d��|jtttdz�d%�d��|jtttd}�d%�d��|jtttt�d'�d��|jttdzt�d'�d��|jtttdz�d'�d��|jtttd}�d'�d��y)�Ny�?@r�y�?@y@y������	@y@y������	@�-�<y�$I�$I�?%I�$I�,��10rr2r�r�r[�3�gz1+3jz0+3jz1.5+3.5jz+gz	+1.5+3.5jy�?�z	+1.5-3.5jz-gz1.5-3.5jz gz	 1.5+3.5jz	 1.5-3.5jy��@z	-1.5+3.5jy���z	-1.5-3.5jy�������z
-1.5-3.5e-20jrjz-1.500000-3.500000j�F�ez-1.500000e+00-3.500000e+00jz.2ez-1.50e+00-3.50e+00jz.2Ez-1.50E+00-3.50E+00jy�����\�z.2Gz-1.5E+10-3.5E+05jy�?@z<20gz1.5+3j              z*<20gz1.5+3j**************z>20gz              1.5+3jz^20gz       1.5+3j       z<20z(1.5+3j)            z>20z            (1.5+3j)z^20z      (1.5+3j)      y+����?�C�l��z^20.2z     (1.1-3.1j)     z20.2fz          1.50+3.00jz>20.2fz<20.2fz1.50+3.00j          y0)�VC D@z150000000000000000000.00+3.00jz>40.2fz(          150000000000000000000.00+3.00jz^40,.2fz(  150,000,000,000,000,000,000.00+3.00j  y|3*�+TTD@z( 1,500,000,000,000,000,000,000.00+3.00j y|3*�+TTDp�@z,.2fz*1,500,000,000,000,000,000,000.00+3,000.00jrz.0ez1e+00+1e+00jz#.0ez1.e+00+1.e+00jz.0fz1+1jz#.0fz1.+1.jy�������?�������?z1.1+1.1jz#gz1.10000+1.10000jz.1ez1.0e+00+1.0e+00jz#.1ez.1fz1.0+1.0jz#.1fy���?z#fz-1.500000+0.500000jz-2.+0.jz#ez-1.500000e+00+5.000000e-01jz-2.e+00+5.e-01jz-1.50000+0.500000jz.0gz-2+0.5jz#.0gz-2.+0.5jy�?�?�010fz=20�bcdoxXz	*{0:.3f}*yn��!	@����	�@z*3.142+2.718j*znan+nanjrz
1.000000+nanjz
nan+1.000000jr�z
nan-1.000000jzNAN+NANjz
1.000000+NANjz
NAN+1.000000jz
NAN-1.000000jzinf+infjz
1.000000+infjz
inf+1.000000jz
inf-1.000000jzINF+INFjz
1.000000+INFjz
INF+1.000000jz
INF-1.000000j)	r�r+r�rr@r��
__format__rDr�)rr2�ts   r�test_formatzComplexTest.test_format�s)	�������b�)�3�t�9�5������"�-�s�8�}�=������B���R��1������b�)�3�t�9�5������b�)�3�t�9�5�������+�S��[�9�	
������,�c�&�k�:�������,�c�&�k�:��������2���A��/������3���Q��0������3���Q��0������4��#�a�&�1��C���������2���A��/������3���Q��0������3���Q��0������3���Q��0��D�#��������2���A��/������3���Q��0������3���Q��0������3���Q��0������c�*�F�3������C��&�1������#�.�
�;������$�/��=������$�/��=������$�/��<������$�/��=������$�/��=�����	�4�0�+�>�����	�4�0�+�>�����
�s�3�_�E�����	�3�/�1F�G�����	�3�/�1F�G�����	�3�/�1N�O�����	�5�1�3H�I�����	�5�1�3H�I�������6�8K�L�������/�2H�I�������0�2H�I�������/�2H�I�������/�2H�I�������.�2H�I�������.�2H�I�������.�2H�I������g�6�8N�O�������0�2H�I�������1�3I�J�������1�3I�J�����	�8�4�6V�W�����	�8�4�6`�a�����	�9�5�7a�b�����	�9�5�7a�b������f�5�7c�d�	
�����e�,�n�=������f�-�/?�@������e�,�f�5������f�-�x�8������#�.�
�;������$�/�1C�D�	
�����e�,�/A�B������f�-�/A�B������e�,�z�:������f�-�z�:�	
�����T�2�4I�J������V�4�i�@������T�2�4Q�R������V�4�6G�H������T�2�4H�I������U�3�Y�?������V�4�j�A�	
���*�x�&;�&;�V�D�	
���*�v�&9�&9�5�A��	D�A����j�8�*?�*?��C�	D�	
����+�+�,<�=�?O�P�	
������S� 1�3�7��D�������3���5��G�������Q���5��G�������R� 0�#�6��H�������S� 1�3�7��D�������3���5��G�������Q���5��G�������R� 0�#�6��H�������S� 1�3�7��D�������3���5��G�������Q���5��G�������R� 0�#�6��H�������S� 1�3�7��D�������3���5��G�������Q���5��G�������R� 0�#�6��Hr N)g��&�.>),r�r�r�rr(r-r/r4rJrOrUrYrkr�r�r�r�r�r�r�r�r�r�r�r�rrr�requires_IEEE_754rrr/r5r:rIrMrRrTrXr\r_rbrfrsrxr rrrsS��
@�
,�$�.1�
#�+�4�

��
5�8;�"=�=�=���
6�7�A�FE�8�B�<�B
9�
���=��=�,G�
<�4�R�
/�8
���
+��
+�=�)�G�
���?��?�
���
5��
5�
���I��I�

���D��D�6wIr r�__main__)rr�rCr�test.test_grammarrrr�mathrrr	rBr?r�rDrMrrr��mainrxr r�<module>rysk���
��<��'�'���E�l���E�l���
�pI�(�#�#�pI�f�z���H�M�M�O�r