
    dafE                     (   d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZ d dlmZ  ej                   d      ZdZ ed      Z ed      Zej,                  Z G d d	      Z G d
 dej0                        Zedk(  r ej6                          yy)    )isnanN)
BadComplexBadComplex2ComplexFloatSubclassFloatBadFloat	BadFloat2ComplexSubclass)import_helper	_testcapiinfnanc                       e Zd Zd Zy)BadComplex3c                     t         )N)RuntimeError)selfs    6/root/Python-3.12.4/Lib/test/test_capi/test_complex.py__complex__zBadComplex3.__complex__   s        N)__name__
__module____qualname__r    r   r   r   r      s    r   r   c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)CAPIComplexTestc                 j   t         j                  }| j                   |d             | j                   |t        d                   | j	                   |t                            | j	                   |d             | j	                   |d             | j	                   |t                            y N      ?       @   g      @)r   complex_check
assertTruer   assertFalser   object)r   checks     r   
test_checkzCAPIComplexTest.test_check   s    ''d$od345wy)*q"s$vx)r   c                 j   t         j                  }| j                   |d             | j                   |t	        d                   | j                   |t                            | j                   |d             | j                   |d             | j                   |t                            y r   )r   complex_checkexactr#   r$   r   r   r%   )r   
checkexacts     r   test_checkexactzCAPIComplexTest.test_checkexact'   s    11

4()OD$9:;GI./A'C)FH-.r   c                 T    t         j                  }| j                   |d      d       y )Nr    )r   complex_fromccomplexassertEqual)r   fromccomplexs     r   test_fromccomplexz!CAPIComplexTest.test_fromccomplex4   s"     55d+X6r   c                 V    t         j                  }| j                   |dd      d       y )N      ?       @r    )r   complex_fromdoublesr.   )r   fromdoubless     r   test_fromdoublesz CAPIComplexTest.test_fromdoubles:   s$    33S#.9r   c                 V   t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                  t        |t                      | j                   |t                     d       | j                  t        |t                      | j                  t              5  | j                   |t                     d       d d d        | j                  t        |t                      y # 1 sw Y   )xY w)	Nr    r2                             @*   g      E@)r   complex_realasdoubler.   r   r   assertRaises	TypeErrorr   r   r	   assertWarnsDeprecationWarningr
   r%   )r   realasdoubles     r   test_realasdoublez!CAPIComplexTest.test_realasdouble@   sU    55d+S1e,d3d+T2d+T2b)3/b)40 	od&;<cBmD&9:DA 	)\79= 	eg.5)\8:>01 	>\)+6=	> 	)\68<	> 	>s   !FF(c                    t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |t                     d       | j                   |t                     d       y )Nr    r3         ?      r9   r:   g        r;   )r   complex_imagasdoubler.   r   r   r   r%   )r   imagasdoubles     r   test_imagasdoublez!CAPIComplexTest.test_imagasdouble]   s     55d+S1d+T2d+S1b)3/ 	od&;<cBmD&9:C@ 	gi0#6 	fh/5r   c                 .   t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |t                     d
       | j                  t        |t                      | j                  t              5  | j                   |t                     d
       d d d        t        j                         5  t        j                  dt               | j                  t        |t                      d d d        | j                  t        |t!                      | j                   |t#                     d       | j                  t        |t%                      | j                  t              5  | j                   |t'                     d       d d d        | j                  t        |t)                      y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w)Nr    y             @r:   y      @        r9   r8   r;   y      E@        r<   y      @      ?error)r   complex_asccomplexr.   r   r   r   r>   r?   r   r@   rA   r   warningscatch_warningssimplefilterr   r   r   r	   r
   r%   )r   
asccomplexs     r   test_asccomplexzCAPIComplexTest.test_asccomplexs   s   11
D)84E*I6D)95D)95B/B3 	OD$9:HEM$$78)D 	GI.	:)Z>01 	CZ6	B	C$$& 	M!!'+=>0*kmL	M 	,
KMB 	EG,i8)Z<01 	AZ	4i@	A 	)Z:	C 	C	M 	M	A 	As$   7!I24:I?)!J2I<?JJc                 V    t         j                  }| j                   |dd      d       y )N                 ?)      ?      ?r   )r   	_py_c_sumr.   )r   rU   s     r   test_py_c_sumzCAPIComplexTest.test_py_c_sum   s$    ''	1b)95r   c                 V    t         j                  }| j                   |dd      d       y )NrR   rS   )rE   r   )r   
_py_c_diffr.   )r   rX   s     r   test_py_c_diffzCAPIComplexTest.test_py_c_diff   s$    ))
Ar*I6r   c                 T    t         j                  }| j                   |d      d       y )NrT   y            )r   	_py_c_negr.   )r   r[   s     r   test_py_c_negzCAPIComplexTest.test_py_c_neg   s!    ''	4%0r   c                 V    t         j                  }| j                   |dd      d       y )N   rS   )               @r   )r   
_py_c_prodr.   )r   r`   s     r   test_py_c_prodzCAPIComplexTest.test_py_c_prod   s$    ))
Ar*G4r   c                    t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d	       | j                   |dd
      d	        |t        d      \  }}| j	                  t        |j                               | j	                  t        |j                               | j                  |d        |dt              \  }}| j	                  t        |j                               | j	                  t        |j                               | j                  |d       | j                   |dd      d   t        j                         y )NrR   rS   )             r   rc   )rS   r   r^   )y              ?r   )y             r   r_   r                   )
r   
_py_c_quotr.   NANr#   r   realimagerrnoEDOM)r   rf   zes       r   test_py_c_quotzCAPIComplexTest.test_py_c_quot   s0   ))
Ar*H5As+W5B*I6B+Z8Ar*J7#r"1aff&aff&A"c"1aff&aff&AAr*1-uzz:r   c                 \   t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d   d        |d	d
      \  }}| j                  |d       | j                  |d       | j                   |dd
      d   t        j
                         | j                   |dd      d   t        j
                         | j                   |t        dz   gdz   d   t        t        gdz          y )NrS   re   )y      ?        r   rR   )re   r   r^   r   r8   rT   r<   y      ?      )	r   	_py_c_powr.   assertAlmostEqualrj   rk   DBL_MAXcomplexINF)r   rp   rrm   s       r   test_py_c_powzCAPIComplexTest.test_py_c_pow   s   ''	2r*I61b)952q)73yQ/2G<r"1q(+A2r*1-uzz:2r*1-uzz:WRZLN3A6#q8IJr   c           	         t         j                  }| j                   |d      d       | j                   |d      d       | j                   |t        d            t        df       | j                   |t        d            t        df       | j                   |t        d            t        df       | j                   |t        d            t        df       | j                  t         |t        d	            d                | j                  t         |t        d
            d                | j                   |t        t        gdz         d   t        j                         y )Nr<   )r2   r   rS   z+inf+1jr   z-inf+1jz	1.25+infjz	1.25-infjz	1.25+nanjznan-1jr^   rR   )
r   	_py_c_absr.   rs   rt   r#   r   rr   rj   ERANGE)r   rx   s     r   test_py_c_abszCAPIComplexTest.test_py_c_abs   s   ''	212179#56aA79#56aA7;#783(C7;#783(Ci(<=a@ABi(9:1=>?7WIaK#89!<ellKr   N)r   r   r   r'   r+   r0   r6   rC   rH   rP   rV   rY   r\   ra   rn   rv   rz   r   r   r   r   r      sK    	*	/7:=:6,;F6715;,K$Lr   r   __main__)mathr   rj   unittestrL   test.test_capi.test_getargsr   r   r   r   r   r	   r
   r   test.supportr   import_moduler   NULLfloatrt   rg   rr   r   TestCaser   r   mainr   r   r   <module>r      s       E E E ' (M''4	ElEl


 
LLh'' LL^ zHMMO r   