o
    GXh(                     @   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dZG d	d
 d
e jZedkrGe   dS dS )    N)support)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALS)random)atan2isnancopysigninfnan))      ?      ?                )r           )r   r   )      ?r   )   r   c                   @   s<  e Zd Zdd ZdEddZdd ZdEd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d"d# Zd$d% Zd&d' Zd(d) Zejd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zejd4d5 Zd6d7 Zd8d9 Z ejd:d; Z!ejd<d= Z"ejd>d? Z#ejd@dA Z$dBdC Z%dDS )FComplexTestc                 C   s   t |tr4t |tr tj| |j|j tj| |j|j d S tj| |j| tj| |jd d S t |trMtj| ||j tj| d|j d S tj| || d S )Nr   )
isinstancecomplexunittestTestCaseassertAlmostEqualrealimagselfab r   ;/opt/python-3.10.19/usr/lib/python3.10/test/test_complex.pyr      s   


zComplexTest.assertAlmostEqual&.>c                 C   s`   t |t |kr||}}|dkrt ||k S |dkr!t ||k S | t || | |k  dS )z+Return true iff floats x and y "are close".r   N)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 n||kr/|dkrdS td|td|kr+dS |d7 }| ||| dS )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 identicalNr   r   z: zeros have different signs)r   r   failformat)r   r"   r#   msgr   r   r   assertFloatsAreIdentical4   s   z$ComplexTest.assertFloatsAreIdenticalc                 C   s(   |  |j|j| |  |j|j| dS )z.Return true iff complexes x and y "are close".N)r$   r   r   r!   r   r   r   assertCloseK   s   zComplexTest.assertClosec                 C   st   || }|dkr|| }|  || ||}|  || |dkr8|| }|  || ||}|  || dS dS )z8Compute complex z=x*y, and check that z/x==y and z/y==x.r   N)r)   __truediv__)r   r"   r#   zqr   r   r   	check_divP   s   

zComplexTest.check_divc                    s  dd t ddD   fdd D }|D ]}|D ]}| || qq| tddd | tddd t d	D ]}| tt t tt t  q9| td
dd dtftdfttffD ]\}}tddt|| }| t|j	 | t|j
 qad S )Nc                 S   s   g | ]}t |qS r   )float).0ir   r   r   
<listcomp>_   s    z,ComplexTest.test_truediv.<locals>.<listcomp>   c                    s    g | ]} D ]}t ||qqS r   )r   r/   r"   r#   Zsimple_realr   r   r1   `   s     gZbti      ?        N~hd          @        r   y      ?      r   )ranger-   r   r   r   r*   NANr    r   r   r   )r   Zsimple_complexr"   r#   r0   Z
denom_realZ
denom_imagr+   r   r5   r   test_truediv^   s$   zComplexTest.test_truedivc              	   C   sD   t D ]\}}| t ||  W d    n1 sw   Y  qd S N)ZERO_DIVISIONassertRaisesZeroDivisionErrorr   r   r   r   test_truediv_zero_divisionv      
z&ComplexTest.test_truediv_zero_divisionc                 C   s   |  t dd  W d    n1 sw   Y  |  t dd  W d    n1 s-w   Y  |  t dd  W d    n1 sFw   Y  |  t dd  W d    n1 s_w   Y  |  t dd  W d    d S 1 syw   Y  d S Nr   r6   r   r   r?   	TypeErrorr   r   r   r   test_floordiv{   s   




"zComplexTest.test_floordivc              	   C   sD   t D ]\}}| t ||  W d    n1 sw   Y  qd S r=   r>   r?   rE   r   r   r   r   test_floordiv_zero_division   rB   z'ComplexTest.test_floordiv_zero_divisionc                 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 ]8}|d }|  t|d	 |d |  t|d	 |d |  tt|||d |  tt|||d qC|  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 )
Nr   r   i'  FTy       @       @r8   g      Y@r   )assertIsr   __eq____lt__NotImplemented__ne__r:   __le____gt____ge__r?   rE   operatorltlegtgeeqne)r   r0   fr   r   r   test_richcompare   s0   zComplexTest.test_richcomparec                    s   dfdd	}t ddD ])}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 ]$}| | }t ||} t ||||  t ||||  qd S r=   )r   rJ   rK   rN   )nZdeltasZis_equalr   deltar0   r+   rF   r   r   check   s   
z6ComplexTest.test_richcompare_boundaries.<locals>.checkr   
   4      e   c                    s   |   dkS )Nr   r   r\   )multr   r   <lambda>       z9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>c                 S      dS )NFr   rb   r   r   r   rd          l          ir   c                 S   rf   )NTr   rb   r   r   r   rd      rg   )r   )r:   r.   )r   r]   r0   powr   )rc   r   r   test_richcompare_boundaries   s   	"z'ComplexTest.test_richcompare_boundariesc                 C   s   |  t dd  W d    n1 sw   Y  |  t dd  W d    n1 s-w   Y  |  t dd  W d    n1 sFw   Y  |  t dd  W d    n1 s_w   Y  |  t dd  W d    d S 1 syw   Y  d S rC   rD   rF   r   r   r   test_mod   s   




"zComplexTest.test_modc              	   C   sD   t D ]\}}| t ||  W d    n1 sw   Y  qd S r=   rH   r   r   r   r   test_mod_zero_division   rB   z"ComplexTest.test_mod_zero_divisionc                 C   sT   |  ttdd |  ttdd |  ttdd |  ttdd |  ttdd d S rC   )r?   rE   divmodrF   r   r   r   test_divmod   s
   zComplexTest.test_divmodc                 C   s"   t D ]\}}| tt|| qd S r=   )r>   r?   rE   rl   r   r   r   r   test_divmod_zero_division   s   z%ComplexTest.test_divmod_zero_divisionc                 C   s2  |  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 | ttdd d}| |d d
 | |d d d
 | dd
 | dd
 zd|  W n	 tyl   Y nw | d zdd  W n	 ty   Y nw | 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 ]E}|D ]@}| j
||d. t||}z||  W n	 ty   Y nw z||  W n
 ty   Y nw W d    n	1 sw   Y  qqd S )Nr   r   r   r9   r                 ?y                 r   yZbti      ?yp=
ף
@Q@r6   z,should fail 0.0 to negative or complex powery      @       i   iyffffff@ffffff@r   r   r   )r   rh   r?   r@   
ValueErrorOverflowErrorassertEqualr%   sysmaxsizesubTestr   )r   r   r   valuesr   r   cr   r   r   test_pow   sh   


zComplexTest.test_powc                 C   s  t ddt ddt dtt tdg}g d}|D ]l}|D ]g}| j||dV z|| }W n ty7   d	}Y nw z|t| }W n tyK   d	}Y nw z|t | }W n ty_   d	}Y nw | t|t| | t|t| W d    n1 s~w   Y  qqd S )
Ng      @g      (@g\nTg;%_nTg      r   )ir2   rp   r   r   r`            )valueexponentZoverflow)r   INFrz   rv   r.   rw   str)r   r{   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 )Nr8   gư>r   )r:   r    r   r   )r   r0   r   r   r   test_boolcontext,  s   zComplexTest.test_boolcontextc                 C   s   |  tdd d d S )Ng333333@g#@y333333@#)r)   r   	conjugaterF   r   r   r   test_conjugate1  s   zComplexTest.test_conjugatec                    s  G dd d}|  t|d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 d.d/ d/t}| t|d0d0 | td1d2d3d4 | td4d5d4 | td4d2d3d6 | tdd7d3d8 d9d: }|  |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d?td  | ttd@ | ttdA | ttddB | ttddC | ttddB | ttdD | ttdE | 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dPtddQid | tdRtdddQi | ttdS | ttdT | ttdU |  ttdVt |  tdWd0 | ttdX G dYdZ dZt G  fd[d\d\}|  t|  G d]d^ d^}| t|d_dC | t|d`|dad3d4 | tt|d  G dbdc dc}| t|dCdd | tde|dCdf | tt|dQdg  | ttde|dQdg  G dhdi di}| tt|  | ttde|  G djdk dkt}	G dldm dmt}
G dnd/ d/t}|  t|	ddo | t |  t|
ddp W d    n	1 sw   Y  | tt|d d S )qNc                   @      e Zd Zdd Zdd ZdS )z(ComplexTest.test_constructor.<locals>.NSc                 S   
   || _ d S r=   r   r   r   r   r   r   __init__6  s   
 z1ComplexTest.test_constructor.<locals>.NS.__init__c                 S      | j S r=   r   rF   r   r   r   __complex__7  s    z4ComplexTest.test_constructor.<locals>.NS.__complex__N)__name__
__module____qualname__r   r   r   r   r   r   NS5  s    r   y      ?      $@g      ?r   z1+10jr^   y      $@        g      $@r   yQ	@        gQ	@i:  y     s@        r   r   r   y        Q	@yQ	        1r6   1jro   z-1rp   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                   @      e Zd ZdS ).ComplexTest.test_constructor.<locals>.complex2Nr   r   r   r   r   r   r   complex2k  re   r   r         rt   y      1@      7@)r   y      1@      G@y      @      @y            @c                 S   s
   t | dS )z7Function that produces different results for 0. and -0.      )r   )r"   r   r   r   split_zerosu  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                   @   r   )z-ComplexTest.test_constructor.<locals>.EvilExcNr   r   r   r   r   EvilExc      r   c                       s   e Zd Z fddZdS )z1ComplexTest.test_constructor.<locals>.evilcomplexc                    s    r=   r   rF   r   r   r   r        z=ComplexTest.test_constructor.<locals>.evilcomplex.__complex__N)r   r   r   r   r   r   r   r   evilcomplex  s    r   c                   @   r   )z,ComplexTest.test_constructor.<locals>.float2c                 S   r   r=   r   r   r   r   r   r        
z5ComplexTest.test_constructor.<locals>.float2.__init__c                 S   r   r=   r   rF   r   r   r   	__float__     z6ComplexTest.test_constructor.<locals>.float2.__float__N)r   r   r   r   r   r   r   r   r   float2      r   g      E@g      1@g      7@c                   @   r   )z-ComplexTest.test_constructor.<locals>.MyIndexc                 S   r   r=   r   r   r   r   r   r     r   z6ComplexTest.test_constructor.<locals>.MyIndex.__init__c                 S   r   r=   r   rF   r   r   r   	__index__  r   z7ComplexTest.test_constructor.<locals>.MyIndex.__index__N)r   r   r   r   r   r   r   r   r   MyIndex  r   r   y      E@        {   y     ^@      E@i  c                   @   s   e Zd Zdd ZdS )z+ComplexTest.test_constructor.<locals>.MyIntc                 S   rf   )Nr   r   rF   r   r   r   __int__  r   z3ComplexTest.test_constructor.<locals>.MyInt.__int__N)r   r   r   r   r   r   r   r   MyInt  s    r   c                   @      e Zd ZdZdd ZdS )z.ComplexTest.test_constructor.<locals>.complex0z:Test usage of __complex__() when inheriting from 'complex'c                 S   rf   )N              E@r   rF   r   r   r   r     r   z:ComplexTest.test_constructor.<locals>.complex0.__complex__Nr   r   r   __doc__r   r   r   r   r   complex0  s    r   c                   @   s"   e Zd ZdZdddZdd ZdS )	z.ComplexTest.test_constructor.<locals>.complex1z3Test usage of __complex__() with a __new__() methodr   c                 S   s   t | d| S )Nr`   )r   __new__r   r   r   r   r        z6ComplexTest.test_constructor.<locals>.complex1.__new__c                 S   s   | S r=   r   rF   r   r   r   r     r   z:ComplexTest.test_constructor.<locals>.complex1.__complex__N)r   )r   r   r   r   r   r   r   r   r   r   complex1  s    
r   c                   @   r   )r   z`Make sure that __complex__() calls fail if anything other than a
            complex is returnedc                 S   s   d S r=   r   rF   r   r   r   r     r   z:ComplexTest.test_constructor.<locals>.complex2.__complex__Nr   r   r   r   r   r     s    r                  @)rw   r   r?   rE   r   r   r   r    ru   intr.   ZassertRaisesRegextype	Exceptionrv   ZassertWarnsDeprecationWarning)r   r   r   r   r|   r   r   r   r   r   r   r   r   r   test_constructor4  s  

zComplexTest.test_constructorc              
   C   s>  G dd dt }ddtt tfD ]}ddtt tfD ]}| j||dp t ||}| |j| | |j| |||}| t|| | |j| | |j| t |||}| t|t  | |j| | |j| |t ||}| t|| | |j| | |j| W d    n1 sw   Y  qqd S )Nc                   @   r   )z>ComplexTest.test_constructor_special_numbers.<locals>.complex2Nr   r   r   r   r   r     r   r   r   r   )r"   r#   )	r   r   r;   rz   r(   r   r   rJ   r   )r   r   r"   r#   r+   r   r   r    test_constructor_special_numbers  s.   

z,ComplexTest.test_constructor_special_numbersc              	      s   t D ]% t fdddD s'| t t  | t t dd qtD ]  dv r1q*t fdddD sC| tt  q*d S )Nc                 3       | ]}| v V  qd S r=   r   r/   ZchZlitr   r   	<genexpr>      z/ComplexTest.test_underscores.<locals>.<genexpr>ZxXoObB_r   )Z0_7Z09_99c                 3   r   r=   r   r   r   r   r   r     r   )	r   anyrw   r   evalreplacer   r?   ru   rF   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 )Nrs      r         @r   )r:   rw   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   r4   r   r   r   r1     s   . 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       |t | | |t| | d S r=   reprr   vZexpectedtest_fnr   r   r   test      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)r   z(inf+1j)z(-inf+infj)z(nan+1j)z(1+nanj)z
(nan+nanj)r   infjz-infjnanjy             y              @)rw   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   r   r=   r   r   r   r   r   r   <  r   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))rw   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            )rw   rF   r   r   r   test_negJ  r   zComplexTest.test_negc                 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   )rw   __getnewargs__r   r   rF   r   r   r   test_getnewargsM  s   zComplexTest.test_getnewargsc                 C   s@   d\}}|  t|jdtdd |  t|jdtdd d S )N)r   r   r   r   r   )rw   r   r   )r   z1z2r   r   r   test_plus_minus_0jU  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_literal\  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)rw   r   r   rF   r   r   r   test_overflowl  s   zComplexTest.test_overflowc           
   	   C   s   dddddddt tg	}|dd |D 7 }|D ]"}|D ]}t||}tt|}| |j|j | |j|j qqtd	td
}}td|td|}}	|D ]*}|D ]%}t||}tt|}| d|j d|j  | d|j d|j  qSqOd S )Nr   gi    r7   g(0?go!	@gd~QJc                 S   s   g | ]}| qS r   r   )r/   r   r   r   r   r1   u  s    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_roundtripr  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| q|  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        	@y      @        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-20jrY   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.00jr   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+nanjr   z1.000000+nanjznan+1.000000jrp   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)	rw   r&   r   r   r?   ru   
__format__r;   r   )r   r+   tr   r   r   test_format  s   

zComplexTest.test_formatN)r   )&r   r   r   r   r$   r(   r)   r-   r<   rA   rG   rI   rZ   ri   rj   rk   rm   rn   r}   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      sR    

< >





r   __main__)r   rx   r   r   Ztest.test_grammarr   r   r   mathr   r   r   rR   r.   r   r;   r>   r   r   r   mainr   r   r   r   <module>   s&         v