a
    zeŀ                     @   s   d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlZedZedZG dd	 d	e jZed
kre   dS )    N)support)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALS)random)atan2isnancopysigninfnanc                   @   s$  e Zd Zdd Zd?ddZdd Zd@dd	Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zejd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zejd,d- Zd.d/ Zd0d1 Zd2d3 Zejd4d5 Zejd6d7 Zejd8d9 Z ejd:d; Z!d<d= Z"d>S )AComplexTestc                 C   s   t |trdt |tr>tj| |j|j tj| |j|j qtj| |j| tj| |jd n@t |trtj| ||j tj| d|j ntj| || d S )N        )
isinstancecomplexunittestTestCaseassertAlmostEqualrealimag)selfab r   '/usr/lib/python3.9/test/test_complex.pyr      s    


zComplexTest.assertAlmostEqual&.>c                 C   s`   t |t |kr|| }}|dkr.t ||k S |dkrBt ||k S | t || | |k  d S Nr   )abs
assertTruer   xyZepsr   r   r   assertCloseAbs    s    
zComplexTest.assertCloseAbsc                 C   st   d}t |st |r*t |r^t |r^d S n4||kr^|dkr>d S td|td|krVd S |d7 }| ||| d S )Nz&floats {!r} and {!r} are not identicalr         ?z: zeros have different signs)r   r   failformat)r   r   r   msgr   r   r   assertFloatsAreIdentical,   s    z$ComplexTest.assertFloatsAreIdenticalc                 C   s(   |  |j|j| |  |j|j| d S N)r    r   r   r   r   r   r   assertCloseC   s    zComplexTest.assertClosec                 C   sp   || }|dkr:|| }|  || ||}|  || |dkrl|| }|  || ||}|  || d S r   )r'   __truediv__)r   r   r   zqr   r   r   	check_divH   s    

zComplexTest.check_divc                    s8  dd t ddD   fdd D }|D ]}|D ]}| || q2q*| tddd | tddd t d	D ]$}| tt t tt t  qr| ttjd
d | ttdd | 	tdd
d | ttjd
d dt
ft
dft
t
ffD ]<\}}tddt|| }| t|j | t|j qd S )Nc                 S   s   g | ]}t |qS r   )float).0ir   r   r   
<listcomp>W       z,ComplexTest.test_truediv.<locals>.<listcomp>   c                    s    g | ]} D ]}t ||qqS r   )r   r-   r   r   Zsimple_realr   r   r/   X   r0   gZbti      ?        N~hd         ?      ?                yZbti      ?       @        y      ?      r   )ranger+   r   r   assertRaisesZeroDivisionErrorr(   OverflowErrorpowr   NANr   r   r   r   )r   Zsimple_complexr   r   r.   Z
denom_realZ
denom_imagr)   r   r4   r   test_truedivV   s&    zComplexTest.test_truedivc                 C   s(   |  ttjdd |  ttjdd d S )N      @        y      ?        r9   )r<   	TypeErrorr   __floordiv__r   r   r   r   test_floordivr   s    zComplexTest.test_floordivc                 C   s  |  tddd> d |  tdd t |  tddd |  tddd |  tddd |  tddd tddD ]p}|d }|  t|d	 |d |  t|d	 |d |  tt|||d |  tt|||d q|  tddt |  tddt |  tddt |  t	ddt | 
ttjdd | 
ttjdd | 
ttjdd | 
ttjdd |  tddd |  tddd |  tddd |  tddd d S )
Nr8      i'  FTy       @       @r7   g      Y@r9   )assertIsr   __eq____lt__NotImplemented__ne__r;   __le____gt____ge__r<   rC   operatorltlegtgeeqne)r   r.   fr   r   r   test_richcomparev   s0    zComplexTest.test_richcomparec                    s   dfdd	}t ddD ]R}d| }d|  |d| t dd fd	d
 |d| t dddd
 t| q|dt dddd
  d S )Nr   c                    sR   |D ]H}| | }t ||} t ||||  t ||||  qd S r&   )r   rH   rI   rL   )nZdeltasZis_equalr   deltar.   r)   rE   r   r   check   s
    
z6ComplexTest.test_richcompare_boundaries.<locals>.checkrG   
   4      e   c                    s   |   dkS r   r   rZ   )multr   r   <lambda>   r0   z9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>c                 S   s   dS )NFr   r`   r   r   r   rb      r0   l          ir   c                 S   s   dS )NTr   r`   r   r   r   rb      r0   )r   )r;   r,   )r   r[   r.   r?   r   )ra   r   r   test_richcompare_boundaries   s    	"z'ComplexTest.test_richcompare_boundariesc                 C   s4   |  tdjd |  tdd  |  tdjd d S )Nr8   r9   c                   S   s   dd S )Np=
ף
@Q@r   r   r   r   r   r   rb      r0   z&ComplexTest.test_mod.<locals>.<lambda>y        333333@)r<   rC   __mod__rE   r   r   r   test_mod   s    zComplexTest.test_modc                 C   s$   |  ttdd |  ttdd d S )Nr8   r5   r9   )r<   rC   divmodrE   r   r   r   test_divmod   s    zComplexTest.test_divmodc                 C   s(  |  tddd |  tddd | ttdd |  tddd |  tdd	d
 | ttddd d}| |d d
 | |d d d
 | dd
 | dd
 zd|  W n ty   Y n0 | d zdd  W n ty   Y n0 | d | |d |d  | |d |d  | |d |d  | dd
 d}| tt||d tjtjd
 tjd
 tj tj d
 tj d
 f}|D ]}|D ]}| j	||d^ t
||}z||  W n ty   Y n0 z||  W n ty   Y n0 W d    n1 s0    Y  qqd S )Nr8   r9   r!   r:   r                 ?y                 rG   rd   r5   z,should fail 0.0 to negative or complex powery      @       i   iffffff@ffffff@r   r   r   )r   r?   r<   r=   
ValueErrorassertEqualr"   sysmaxsizesubTestr   r>   )r   r   r   valuesr   r   cr   r   r   test_pow   sT    


zComplexTest.test_powc                 C   s  t ddt ddt dtt tdg}g d}|D ]}|D ]}| j||d z|| }W n tyn   d	}Y n0 z|t| }W n ty   d	}Y n0 z|t | }W n ty   d	}Y n0 | t|t| | t|t| W d    q81 s0    Y  q8q0d S )
Ng      @g      (@g\nTg;%_nTg      r   )ir1   rj   r   rG   r^            )valueexponentZoverflow)r   INFrt   r>   r,   rq   str)r   ru   Z	exponentsr}   r~   Zint_powZ	float_powZcomplex_powr   r   r   %test_pow_with_small_integer_exponents   s.    


z1ComplexTest.test_pow_with_small_integer_exponentsc                 C   s@   t dD ] }| tt d t d  q| tdd  d S )Nr7   gư>r   )r;   r   r   r   )r   r.   r   r   r   test_boolcontext  s    zComplexTest.test_boolcontextc                 C   s   |  tdd d d S )Ng333333@g#@y333333@#)r'   r   	conjugaterE   r   r   r   test_conjugate  s    zComplexTest.test_conjugatec                    s0  G dd d}G dd dt }| t|dd | t|dd | tt|d  | tt|d  | tti  | tt|d | tt|d | tdd | td	d
 | tdd
 | td	d
 | td
d
 | tdd	d | tdd	d | tddd | tdd	d | tdd	d | tddd | tdd	d | tdd	d | tddd | tdd | tdd | tdd | tdd | tddd | tddd | tddd | tddd | tddd | tddd | tddd | tddd | tdd | tdd | t d | tdd | tdd | tdd | tdd  | td!d" | td#d$ | td%d& | td'd" | td(d | td)d | td*d | td+d, | td-d | td.d | td/d G d0d1 d1t}| t|d2d2 | td3d4d5d6 | td6d7d6 | td6d4d5d8 | tdd9d5d: d;d< }| |tddj|d | |tdd=j|d= | |tddj|d | |td=dj|d= d"}| t||u  ~| ttdd | ttdd | t	td> | tt
d? | tt
d? | ttd? | t	td@ | ttd  | tdAtd  | t	tdB | t	tdC | ttddD | ttddE | ttddD | t	tdF | t	tdG | t	tdH | t	tdI | t	tdJ | t	tdK | t	tdL | t	tdM | t	tdN | t	tdO | t	tdP | t	tdQ | tdRtddSid | tdTtdddSi | t	tdU | t	tdV | t	tdW | ttdXt | tdYd2 | t	tdZ G d[d\ d\t G  fd]d^d^}|  t|  G d_d` d`}| t|dadE | t|db|dcd5d6 | tt|d  G ddde de}| t|dEdf | tdg|dEdh | tt|dSdi  | ttdg|dSdi  G djdk dk}	| tt|	  | ttdg|	  G dldm dmt}
G dndo dot}G dpd1 d1t}| t|
ddq | t$ | t|ddr W d    n1 s0    Y  | tt|d d S )sNc                   @   s   e Zd Zdd Zdd ZdS )z(ComplexTest.test_constructor.<locals>.OSc                 S   s
   || _ d S r&   r}   r   r}   r   r   r   __init__  r0   z1ComplexTest.test_constructor.<locals>.OS.__init__c                 S   s   | j S r&   r   rE   r   r   r   __complex__  r0   z4ComplexTest.test_constructor.<locals>.OS.__complex__N__name__
__module____qualname__r   r   r   r   r   r   OS  s   r   c                   @   s   e Zd Zdd Zdd ZdS )z(ComplexTest.test_constructor.<locals>.NSc                 S   s
   || _ d S r&   r   r   r   r   r   r     r0   z1ComplexTest.test_constructor.<locals>.NS.__init__c                 S   s   | j S r&   r   rE   r   r   r   r     r0   z4ComplexTest.test_constructor.<locals>.NS.__complex__Nr   r   r   r   r   NS  s   r   y      ?      $@g      ?rG   z1+10jr\   y      $@        g      $@r!   yQ	@        gQ	@i:  y     s@        r9   r   r   y        Q	@yQ	        1r5   1jri   z-1rj   z+1z(1+2j)      ?       @z
(1.3+2.2j)y?@z3.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             z1e-500z-1e-500jz-1e-500+1e-500jc                   @   s   e Zd ZdS ).ComplexTest.test_constructor.<locals>.complex2Nr   r   r   r   r   r   r   complex2F  r0   r   r8         ro   y      1@      7@)r   y      1@      G@y      @      @y            @c                 S   s
   t | dS )N      )r   )r   r   r   r   split_zerosP  s    z1ComplexTest.test_constructor.<locals>.split_zeros       z1+1j jy      @      @ znot 'NoneType' z3 92*   z1+z1+1j+1jz--z(1+2jz1+2j)z1+(2j)z	(1+2j)123r   z1j+2Z1e1ejz1e++1ejz)1+2j(z7first argument must be a string or a number, not 'dict'r^   z,second argument must be a number, not 'dict'z1..1jz1.11.1jz1e1.1jA  11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111u    ( 1+1j ) u   こんにちはc                   @   s   e Zd ZdS )z-ComplexTest.test_constructor.<locals>.EvilExcNr   r   r   r   r   EvilExc  s   r   c                       s   e Zd Z fddZdS )z1ComplexTest.test_constructor.<locals>.evilcomplexc                    s    d S r&   r   rE   r   r   r   r     s    z=ComplexTest.test_constructor.<locals>.evilcomplex.__complex__Nr   r   r   r   r   r   r   r   evilcomplex  s   r   c                   @   s   e Zd Zdd Zdd ZdS )z,ComplexTest.test_constructor.<locals>.float2c                 S   s
   || _ d S r&   r   r   r   r   r   r     s    z5ComplexTest.test_constructor.<locals>.float2.__init__c                 S   s   | j S r&   r   rE   r   r   r   	__float__  s    z6ComplexTest.test_constructor.<locals>.float2.__float__N)r   r   r   r   r   r   r   r   r   float2  s   r   g      E@g      1@g      7@c                   @   s   e Zd Zdd Zdd ZdS )z-ComplexTest.test_constructor.<locals>.MyIndexc                 S   s
   || _ d S r&   r   r   r   r   r   r     s    z6ComplexTest.test_constructor.<locals>.MyIndex.__init__c                 S   s   | j S r&   r   rE   r   r   r   	__index__  s    z7ComplexTest.test_constructor.<locals>.MyIndex.__index__N)r   r   r   r   r   r   r   r   r   MyIndex  s   r   y      E@        {   y     ^@      E@i  c                   @   s   e Zd Zdd ZdS )z+ComplexTest.test_constructor.<locals>.MyIntc                 S   s   dS )Nr   r   rE   r   r   r   __int__  s    z3ComplexTest.test_constructor.<locals>.MyInt.__int__N)r   r   r   r   r   r   r   r   MyInt  s   r   c                   @   s   e Zd Zdd ZdS )z.ComplexTest.test_constructor.<locals>.complex0c                 S   s   dS )N              E@r   rE   r   r   r   r     s    z:ComplexTest.test_constructor.<locals>.complex0.__complex__Nr   r   r   r   r   complex0  s   r   c                   @   s   e Zd ZdddZdd ZdS )z.ComplexTest.test_constructor.<locals>.complex1r9   c                 S   s   t | d| S )Nr^   )r   __new__r   r   r   r   r     s    z6ComplexTest.test_constructor.<locals>.complex1.__new__c                 S   s   | S r&   r   rE   r   r   r   r     s    z:ComplexTest.test_constructor.<locals>.complex1.__complex__N)r9   )r   r   r   r   r   r   r   r   r   complex1  s   
r   c                   @   s   e Zd Zdd ZdS )r   c                 S   s   d S r&   r   rE   r   r   r   r     s    z:ComplexTest.test_constructor.<locals>.complex2.__complex__Nr   r   r   r   r   r     s   r                  @)objectrq   r   r<   rC   r   r   r   r   rp   intr,   ZassertRaisesRegextype	Exceptionr>   ZassertWarnsDeprecationWarning)r   r   r   r   r   rv   r   r   r   r   r   r   r   r   r   test_constructor
  s   

4zComplexTest.test_constructorc              
   C   sD  G dd dt }ddtt tfD ]}ddtt tfD ]}| j||d t ||}| |j| | |j| |||}| t|| | |j| | |j| t |||}| t|t  | |j| | |j| |t ||}| t|| | |j| | |j| W d    q61 s20    Y  q6q d S )Nc                   @   s   e Zd ZdS )z>ComplexTest.test_constructor_special_numbers.<locals>.complex2Nr   r   r   r   r   r     s   r   r   r   )r   r   )	r   r   r@   rt   r%   r   r   rH   r   )r   r   r   r   r)   r   r   r    test_constructor_special_numbers  s&    

z,ComplexTest.test_constructor_special_numbersc              	      s   t D ]J t fdddD s| t t  | t t dd qtD ]2  dv rbqTt fdddD sT| tt  qTd S )Nc                 3   s   | ]}| v V  qd S r&   r   r-   ZchZlitr   r   	<genexpr>  r0   z/ComplexTest.test_underscores.<locals>.<genexpr>ZxXoObB_r   )Z0_7Z09_99c                 3   s   | ]}| v V  qd S r&   r   r   r   r   r   r     r0   )	r   anyrq   r   evalreplacer   r<   rp   rE   r   r   r   test_underscores  s    zComplexTest.test_underscoresc                 C   sP   t ddD ]@}| t|tt|d |d }| t|tt|d q
d S )Nrm      r         @r   )r;   rq   hashr   )r   r   r   r   r   	test_hash  s    zComplexTest.test_hashc                 C   sF   dd t ddD }|D ](}| |jd |jd  d t| qd S )Nc                 S   s.   g | ]&}t d dD ]}t|d |d qqS )	   r   g      @)r;   r   r3   r   r   r   r/     r0   z(ComplexTest.test_abs.<locals>.<listcomp>r   r   r^   g      ?)r;   r   r   r   r   )r   Znumsnumr   r   r   test_abs  s    zComplexTest.test_absc                 C   s,  | j fdd}|dd |dd |dd| jd	 |td
td |td
t d |ttdd |tt td |ttdd |tdtd |tttd |tdtd |tdt d |tdtd |  dttd |  dttd |  dttd |  dttd d S )Nc                 S   s    |t | | |t| | d S r&   reprr   vZexpectedtest_fnr   r   r   test  s    z'ComplexTest.test_repr_str.<locals>.testy      ?      @z(1+6j)y      ?      z(1-6j)y             z(-1+-0j))r   r!   z(1+infj)z(1-infj)rG   z(inf+1j)z(-inf+infj)z(nan+1j)z(1+nanj)z
(nan+nanj)r   infjz-infjnanjy             y              @)rq   ZassertNotEqualr   r   r@   r   r   r   r   r   r   test_repr_str  s$    

zComplexTest.test_repr_strc                 C   s   | j fdd}|tddd |tddd |tddd	 |tddd
 |tddd |tddd |tddd |tddd d S )Nc                 S   s    |t | | |t| | d S r&   r   r   r   r   r   r     s    z5ComplexTest.test_negative_zero_repr_str.<locals>.testr   r!   r   r   z(-0+1j)r   z-1jz(-0-1j)Z0jz-0jz(-0+0j)z(-0-0j))rq   r   r   r   r   r   test_negative_zero_repr_str  s    z'ComplexTest.test_negative_zero_repr_strc                 C   s   |  dd d S )Ny            )rq   rE   r   r   r   test_neg%  s    zComplexTest.test_negc              	   C   s   d}d}d }zlt tjd}t|||d |  t tjd}| | d||f  W |d url|jsl|  ttj n$|d ur|js|  ttj 0 d S )Nrd   rn   w)filerz%s %s
)	openr   ZTESTFNprintcloserq   readclosedunlink)r   r   r   for   r   r   	test_file(  s    zComplexTest.test_filec                 C   sx   |  d d |  d d |  d d |  d d |  td	t d
tf |  ttd	 td
f d S )Nr   )r!          @y      ?       )r!   g       r   )r   r                 )r   r   r   r   )rq   __getnewargs__r   r   rE   r   r   r   test_getnewargs8  s    zComplexTest.test_getnewargsc                 C   s@   d\}}|  t|jdtdd |  t|jdtdd d S )N)r9   r   r   r   r   )rq   r   r   )r   z1z2r   r   r   test_plus_minus_0j@  s    zComplexTest.test_plus_minus_0jc                 C   sf   d}d}d}|  |jd |  |jd |  |jd |  |jd |  |jd |  |jt  d S )Nr   y             y             r   g      )r%   r   r   r   )r   Zz0r   r   r   r   r   test_negated_imaginary_literalG  s    z*ComplexTest.test_negated_imaginary_literalc                 C   sJ   |  tdttd |  tdtdt  |  tdtt t d S )NZ1e500r   z-1e500jz-1e500+1.8e308j)rq   r   r   rE   r   r   r   test_overflowW  s    zComplexTest.test_overflowc           
   	   C   s   dddddddt tg	}|dd |D 7 }|D ]D}|D ]:}t||}tt|}| |j|j | |j|j q4q,td	td
 }}td|td| }}	|D ]T}|D ]J}t||}tt|}| d|j d|j  | d|j d|j  qqd S )Nr   gi    r6   g(0?go!	@gd~QJc                 S   s   g | ]
}| qS r   r   )r-   r   r   r   r   r/   `  r0   z3ComplexTest.test_repr_roundtrip.<locals>.<listcomp>r	   r
   )	r   r@   r   r   r%   r   r   r,   r   )
r   Zvalsr   r   r)   Z	roundtripr	   r
   r   r   r   r   r   test_repr_roundtrip]  s(    

zComplexTest.test_repr_roundtripc                 C   s&  |  tddtd |  tddtd |  tddtd |  tddtd |  tddtd |  tddtd |  tddtd |  tdd	td d
}|  t|dt| |  t|dt| |  t|d	t| |  t|dt| tdd}|  t|dt| |  t|dt| |  t|d	t| |  t|dt| tdd}|  t|dt| |  t|dt| |  t|d	t| |  t|dt| |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd  |  td!dd" |  td#dd$ |  td!d%d& |  td!d'd& |  td!d(d) |  td!d*d+ |  td!d,d- |  td.d/d0 |  td1d2d3 |  td1d4d5 |  td1d6d7 |  td1d8d9 |  td1d:d; |  td1d<d= |  td1d>d? |  td@dAdB |  td1dCdD |  td1dEdD |  td1dFdG |  tdHdFdI |  tdHdJdK |  tdHdLdM |  tdNdLdO |  tdPdQdR |  tdSdTdU |  tdSdVdW |  tdSdXdY |  tdSdZd[ |  td\dd] |  td\d^d_ |  tdSd`da |  tdSdbda |  tdSdcdd |  tdSdedd |  tdfdgdh |  tdfdZdi |  tdfdjdk |  tdfdVdl |  tdfd^dm |  tdfdndo |  tdfdpdq | tdrjds | td1jdt duD ]}| tdrj| qx|  dvdwdx |  ttttd%dy |  ttdztd%d{ |  tttdzd%d| |  tttd}d%d~ |  ttttd'd |  ttdztd'd |  tttdzd'd |  tttd}d'd |  ttttd%d |  ttdztd%d |  tttdzd%d |  tttd}d%d |  ttttd'd |  ttdztd'd |  tttdzd'd |  tttd}d'd d S )Ny      ?      @r   y      ?      @y              @y        	@rB   y	@        -<y$I$I?%I$I,Z10r   r   r   r   r   3gz1+3jz0+3jz1.5+3.5jz+gz	+1.5+3.5jy      ?      z	+1.5-3.5jz-gz1.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-20jrW   z-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<20gz1.5+3j              z*<20gz1.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+?Clz^20.2z     (1.1-3.1j)     z20.2fz          1.50+3.00jz>20.2fz<20.2fz1.50+3.00j          y0)VC D      @z150000000000000000000.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*+TTD     p@z,.2fz*1,500,000,000,000,000,000,000.00+3,000.00jr8   z.0ez1e+00+1e+00jz#.0ez1.e+00+1.e+00jz.0fz1+1jz#.0fz1.+1.jy??z1.1+1.1jz#gz1.10000+1.10000jz.1ez1.0e+00+1.0e+00jz#.1ez.1fz1.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      ?      ?Z010fz=20ZbcdoxXz	*{0:.3f}*yn!	@	@z*3.142+2.718j*znan+nanjrG   z1.000000+nanjznan+1.000000jrj   znan-1.000000jzNAN+NANjz1.000000+NANjzNAN+1.000000jzNAN-1.000000jzinf+infjz1.000000+infjzinf+1.000000jzinf-1.000000jzINF+INFjz1.000000+INFjzINF+1.000000jzINF-1.000000j)	rq   r#   r   r   r<   rp   
__format__r@   r   )r   r)   tr   r   r   test_formaty  s    

zComplexTest.test_formatN)r   )r   )#r   r   r   r   r    r%   r'   r+   rA   rF   rX   rc   rf   rh   rw   r   r   r   r   r   Zrequires_IEEE_754r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sJ   

; C





r   __main__)r   rr   r   r   Ztest.test_grammarr   r   r   mathr   r   r   rP   r,   r   r@   r   r   r   mainr   r   r   r   <module>   s         i