
    J/Ph=,                         d dl Z d dlZd dlZd dlmZmZ d dlmZ ddlT d dl	Z	ddiZ
ddiZ G d	 d
e          Z G d dee          Z G d dee          Zedk    r e	j                     dS dS )    N)jittypes)TestCase   )*forceobjTnopythonc                   :    e Zd Zd Zd Zd ZddefdZdefdZdS )BaseComplexTestc           
          ddddddt          d          t          d          g}t          j        d	k    r|t          d
          gz  }d t          j        ||          D             S )N               r         ?g      -inf+infwin32nanc                 4    g | ]\  }}t          ||          S  complex.0xys      X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_complex.py
<listcomp>z0BaseComplexTest.basic_values.<locals>.<listcomp>   $    JJJ$!Q1JJJ    )floatsysplatform	itertoolsproductselfrealss     r   basic_valueszBaseComplexTest.basic_values   sg    tQD$vf/<7""eEll^#EJJ)*;E5*I*IJJJJr    c           
          ddddt           j         t           j        
 t          d          t          d          g}t          j        dk    r|t          d          gz  }d	 t          j        ||          D             S )
Nr   r   r   r   r   r   r   r   c                 4    g | ]\  }}t          ||          S r   r   r   s      r   r   z/BaseComplexTest.more_values.<locals>.<listcomp>   r   r    )mathpir!   r"   r#   r$   r%   r&   s     r   more_valueszBaseComplexTest.more_values   so    tQTWHtwhvf/<7""eEll^#EJJ)*;E5*I*IJJJJr    c           
          ddddt           j         t           j        
 t          d          t          d          g}d t          j        ||          D             S )Nr   r   r   r   infr   c                 4    g | ]\  }}t          ||          S r   r   r   s      r   r   z2BaseComplexTest.non_nan_values.<locals>.<listcomp>!   r   r    )r,   r-   r!   r$   r%   r&   s     r   non_nan_valueszBaseComplexTest.non_nan_values   sP    tQTWHtwhuuV}}.JJ)*;E5*I*IJJJJr    r   Nc           
      n   |D ]} t          |ffi ||          }|t          j        t          j        fv rdnd}	|D ]w}
	  ||
          }n:# t          $ r-}|                     dt          |                     Y d }~Ad }~ww xY w ||
          }d|
d|	}|                     |||	|||           xd S )Nsingledoublemath domain error
for input  with prec )preculpsabs_tolmsg)r   r   float32	complex64
ValueErrorassertInstrassertPreciseEqual)r'   pyfuncx_typesx_valuesr:   r;   flagstxcfuncr9   vxexpectedegotr<   s                  r   	run_unaryzBaseComplexTest.run_unary#   s     	M 	MB'C''''//E!emU_%EEE888D 	M 	M%vbzzHH!   MM"5s1vv>>>HHHH eBii57RR>''XD-17 ( M M M M	M	M 	Ms   A
B#A==Bc           	         |D ]\  }} t          ||ffi ||          }t          ||g          t          t          j        t          j        g          z  rdnd}	|D ]\  }
}	  ||
|          }nE# t
          $ r-}|                     dt          |                     Y d }~Ed }~wt          $ r Y Tw xY w ||
|          }d|
|fd|	}| 	                    |||	||           d S )Nr4   r5   r6   r7   r8   )r9   r:   r<   )
r   setr   r=   r>   r?   r@   rA   ZeroDivisionErrorrB   )r'   rC   value_typesvaluesr:   rF   rG   tyrH   r9   rI   vyrJ   rK   rL   r<   s                   r   
run_binaryzBaseComplexTest.run_binary3   sT   ! 	< 	<FB*CR**E**622EB8}}sEM5?+K'L'LL"HH!  ! < <B%vb"~~HH!   MM"5s1vv>>>HHHH(   HeBmm68"XXXttD''XD-1s ( < < < <<	< 	<s   #A00
B2:#B""B21B2)	__name__
__module____qualname__r)   r.   r2   enable_pyobj_flagsrM   rU   r   r    r   r   r      s        K K KK K KK K K
 9:4*M M M M  <=+< < < < < <r    r   c                   N    e Zd ZefdZd ZefdZd ZefdZd Z	efdZ
d Zd	S )
TestComplexc                 j   |                      t          t          j        t          j        g|                                 |           |                      t          t          j        t          j        gg d|           |                      t          t          j        t          j	        gddg|           d S NrF   )r   r   r   g      )
rM   real_usecaser   r>   
complex128r)   int8int64r=   float64r'   rF   s     r   	test_realzTestComplex.test_realJ       |eou7G%H((**% 	 	9 	9 	9|ej%+%>!zz 	 	0 	0 	0|emU]%CT{% 	 	1 	1 	1 	1 	1r    c                 <    |                      t                     d S Nr^   )rf   no_pyobj_flagsr'   s    r   test_real_npmzTestComplex.test_real_npmR       ^,,,,,r    c                 j   |                      t          t          j        t          j        g|                                 |           |                      t          t          j        t          j        gg d|           |                      t          t          j        t          j	        gddg|           d S r]   )
rM   imag_usecaser   r>   ra   r)   rb   rc   r=   rd   re   s     r   	test_imagzTestComplex.test_imagU   rg   r    c                 <    |                      t                     d S ri   )rp   rj   rk   s    r   test_imag_npmzTestComplex.test_imag_npm]   rm   r    c                 j   |                      t          t          j        t          j        g|                                 |           |                      t          t          j        t          j        gg d|           |                      t          t          j        t          j	        gddg|           d S r]   )
rM   conjugate_usecaser   r>   ra   r)   rb   rc   r=   rd   re   s     r   test_conjugatezTestComplex.test_conjugate`   s    (5?E<L*M((**% 	 	9 	9 	9(5:u{*C!zz 	 	0 	0 	0(5=%-*HT{% 	 	1 	1 	1 	1 	1r    c                 <    |                      t                     d S ri   )ru   rj   rk   s    r   test_conjugate_npmzTestComplex.test_conjugate_npmh   s    .11111r    c                 .   t          t          j        |                                 |                                                     }t          j        t          j        ft          j        t          j        fg}|                     t          |||           dS )zN
        Test complex.__div__ implementation with non-trivial values.
        r^   N)	listr$   r%   r.   r   ra   r>   rU   div_usecaser'   rF   rR   rQ   s       r   test_divzTestComplex.test_divk   sw    
 i'(8(8(:(:D<L<L<N<NOOPP(%*:;9;[&FFFFFr    c                 <    |                      t                     d S ri   )r|   rj   rk   s    r   test_div_npmzTestComplex.test_div_npmu   s    N+++++r    N)rV   rW   rX   rY   rf   rl   rp   rr   ru   rw   r|   r~   r   r    r   r[   r[   H   s        0 1 1 1 1- - - 1 1 1 1 1- - - $6 1 1 1 12 2 2 0 G G G G, , , , ,r    r[   c                   L   e Zd ZdZd Z	 	 d4dZd Zd Zd Zd	 Z	e
fd
Zd Ze
fdZd Ze
fdZd Ze
fdZd Zd Zd Zd Zd Ze
f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%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d. Z/d/ Z0d0 Z1d1 Z2d2 Z3d3 Z4dS )5	TestCMathz)
    Tests for cmath module support.
    c                     |                      |t          j        t          j        g|                                 |           d S ri   )rM   r   ra   r>   r)   )r'   rC   rF   s      r   check_predicate_funczTestCMath.check_predicate_func~   sF    v 0%/B((**% 	 	9 	9 	9 	9 	9r    r   Nc                     |                      |t          j        g|p|                                 |||           |                      |t          j        g|p|                                 |||           d S )N)rF   r:   r;   )rM   r   ra   r.   r>   r)   )r'   rC   rF   r:   r;   rR   s         r   check_unary_funczTestCMath.check_unary_func   s    v 013!1!1!3!35t& 	 	( 	( 	( 	v04!2!2!4!4E& 	 	( 	( 	( 	( 	(r    c                 F    |                      t          t                     d S N)r   phase_usecaserY   rk   s    r   
test_phasezTestCMath.test_phase       m-?@@@@@r    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_phase_npmzTestCMath.test_phase_npm       m^<<<<<r    c                 F    |                      t          t                     d S r   )r   polar_usecaserY   rk   s    r   
test_polarzTestCMath.test_polar   r   r    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_polar_npmzTestCMath.test_polar_npm   r   r    c                       fd} |t           j                                                     |t           j                                                    d S )Nc                 b    d |D             }                     t          | | fg|           d S )Nc                 r    g | ]4}t          j        |j                  r|j        d k    &|j        |j        f5S )r   )r,   isinfimagreal)r   zs     r   r   z8TestCMath.test_rect.<locals>.do_test.<locals>.<listcomp>   sK     @ @ @1!Z//@346Q;; vqv&3>;;r    r^   )rU   rect_usecase)tpseed_valuesrR   rF   r'   s      r   do_testz$TestCMath.test_rect.<locals>.do_test   sK    @ @ @ @ @FOOLB8*fEOJJJJJr    )r   rd   r.   r=   r)   )r'   rF   r   s   `` r   	test_rectzTestCMath.test_rect   sp    	K 	K 	K 	K 	K 	K 	t//11222t002233333r    c                 <    |                      t                     d S ri   )r   rj   rk   s    r   test_rect_npmzTestCMath.test_rect_npm   rm   r    c                 F    |                      t          t                     d S r   )r   isnan_usecaserY   re   s     r   
test_isnanzTestCMath.test_isnan       !!-1CDDDDDr    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_isnan_npmzTestCMath.test_isnan_npm       !!-@@@@@r    c                 F    |                      t          t                     d S r   )r   isinf_usecaserY   re   s     r   
test_isinfzTestCMath.test_isinf   r   r    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_isinf_npmzTestCMath.test_isinf_npm   r   r    c                 F    |                      t          t                     d S r   )r   isfinite_usecaserY   re   s     r   test_isfinitezTestCMath.test_isfinite   s     !!"24FGGGGGr    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_isfinite_npmzTestCMath.test_isfinite_npm   s    !!"2NCCCCCr    c                 J    |                      t          t          d           d S N   )r:   )r   exp_usecaserY   rk   s    r   test_expzTestCMath.test_exp   $    k+=AFFFFFr    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_exp_npmzTestCMath.test_exp_npm   s%     	k>BBBBBr    c                 F    |                      t          t                     d S r   )r   log_usecaserY   rk   s    r   test_logzTestCMath.test_log   s    k+=>>>>>r    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_log_npmzTestCMath.test_log_npm   s    k>:::::r    c                 0   t          t          j        |                                 |                                                     }t          j        t          j        ft          j        t          j        fg}|                     t          |||d           d S )N   )rF   r:   )	ry   r$   r%   r.   r   ra   r>   rU   log_base_usecaser{   s       r   test_log_basezTestCMath.test_log_base   s    i'(8(8(:(:D<L<L<N<NOOPP(%*:;9;(+vU 	 	  	  	  	  	 r    c                 <    |                      t                     d S ri   )r   rj   rk   s    r   test_log_base_npmzTestCMath.test_log_base_npm   s    00000r    c                 F    |                      t          t                     d S r   )r   log10_usecaserY   rk   s    r   
test_log10zTestCMath.test_log10   r   r    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_log10_npmzTestCMath.test_log10_npm   r   r    c                 F    |                      t          t                     d S r   )r   sqrt_usecaserY   rk   s    r   	test_sqrtzTestCMath.test_sqrt   s    l,>?????r    c                     |                      t          t                     d t          dd          D             }|                     t          t
          j        g|t                     d S )Nc                     g | ]}d |z   	S )
   r   )r   is     r   r   z+TestCMath.test_sqrt_npm.<locals>.<listcomp>   s    222q27(222r    $   )   r^   )r   r   rj   rangerM   r   ra   )r'   rR   s     r   test_sqrt_npmzTestCMath.test_sqrt_npm   si    lN;;; 32E"bMM222|e&6%7^ 	 	5 	5 	5 	5 	5r    c                 J    |                      t          t          d           d S r   )r   acos_usecaserY   rk   s    r   	test_acoszTestCMath.test_acos   $    l,>QGGGGGr    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_acos_npmzTestCMath.test_acos_npm   #    lNCCCCCr    c                 J    |                      t          t          d           d S r   )r   asin_usecaserY   rk   s    r   	test_asinzTestCMath.test_asin   r   r    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_asin_npmzTestCMath.test_asin_npm   r   r    c                 J    |                      t          t          d           d S r   )r   atan_usecaserY   rk   s    r   	test_atanzTestCMath.test_atan   s$    l,>QHHHHHr    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_atan_npmzTestCMath.test_atan_npm   s#    lNDDDDDr    c                 J    |                      t          t          d           d S r   )r   cos_usecaserY   rk   s    r   test_coszTestCMath.test_cos   r   r    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_cos_npmzTestCMath.test_cos_npm   s#    k>BBBBBr    c                 J    |                      t          t          d           d S Neps)r;   )r   sin_usecaserY   rk   s    r   test_sinzTestCMath.test_sin   s$    k+=uMMMMMr    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_sin_npmzTestCMath.test_sin_npm  s#    k>5IIIIIr    c                 J    |                      t          t          d           d S r   r   tan_usecaserY   rk   s    r   test_tanzTestCMath.test_tan  r   r    c                 J    |                      t          t          d           d S r   r   rk   s    r   test_tan_npmzTestCMath.test_tan_npm
  r   r    c                 F    |                      t          t                     d S r   )r   acosh_usecaserY   rk   s    r   
test_acoshzTestCMath.test_acosh  r   r    c                 F    |                      t          t                     d S r   )r   r   rj   rk   s    r   test_acosh_npmzTestCMath.test_acosh_npm  r   r    c                 J    |                      t          t          d           d S r   )r   asinh_usecaserY   rk   s    r   
test_asinhzTestCMath.test_asinh  $    m-?aHHHHHr    c                 J    |                      t          t          d           d S r   )r   r   rj   rk   s    r   test_asinh_npmzTestCMath.test_asinh_npm  #    m^!DDDDDr    c                 J    |                      t          t          d           d S r   )r   atanh_usecaserY   rk   s    r   
test_atanhzTestCMath.test_atanh  r   r    c                 J    |                      t          t          d           d S r   )r   r  rj   rk   s    r   test_atanh_npmzTestCMath.test_atanh_npm  r  r    c                 J    |                      t          t          d           d S r   )r   cosh_usecaserY   rk   s    r   	test_coshzTestCMath.test_cosh!  r   r    c                 J    |                      t          t          d           d S r   )r   r	  rj   rk   s    r   test_cosh_npmzTestCMath.test_cosh_npm$  r   r    c                 J    |                      t          t          d           d S r   )r   sinh_usecaserY   rk   s    r   	test_sinhzTestCMath.test_sinh'  s$    l,>NNNNNr    c                 J    |                      t          t          d           d S r   )r   r  rj   rk   s    r   test_sinh_npmzTestCMath.test_sinh_npm*  s#    lNEJJJJJr    c                 J    |                      t          t          d           d S r   r   tanh_usecaserY   rk   s    r   	test_tanhzTestCMath.test_tanh-  r   r    c                 J    |                      t          t          d           d S r   r  rk   s    r   test_tanh_npmzTestCMath.test_tanh_npm0  r   r    )r   NN)5rV   rW   rX   __doc__r   r   r   r   r   r   rY   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r  r   r    r   r   r   y   s        9 9 9 ?C $( ( ( (A A A= = =A A A= = = 1 4 4 4 4- - -
  2 E E E EA A A  2 E E E EA A A #5 H H H HD D D
G G GC C C? ? ?; ; ; #5        1 1 1A A A= = =@ @ @5 5 5H H HD D DH H HD D DI I IE E EG G GC C CN N NJ J JG G GG G G
A A A= = =I I IE E EI I IE E EH H HD D DO O OK K KH H HH H H H Hr    r   __main__)r$   r,   r"   numbar   r   numba.tests.supportr   complex_usecasesunittestrY   rj   objectr   r[   r   rV   mainr   r    r   <module>r      s2        



         ( ( ( ( ( (      $' d#7< 7< 7< 7< 7<f 7< 7< 7<t., ., ., ., .,/8 ., ., .,bxH xH xH xH xH xH xH xHv zHMOOOOO r    