
    wir,                         d dl Z d dlZd dlZd dlmZmZ d dlmZ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skip_if_py314   )*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      h/root/.openclaw/workspace/chatterbox_venv_py311/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cfuncr:   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 )Nr5   r6   r7   r8   r9   )r:   r;   r=   )
r   setr   r>   r?   r@   rA   rB   ZeroDivisionErrorrC   )r(   rD   value_typesvaluesr;   rG   rH   tyrI   r:   rJ   vyrK   rL   rM   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/   r3   enable_pyobj_flagsrN   rV   r   r!   r   r   r      s        K K KK K KK K K
 9:4*M M M M  <=+< < < < < <r!   r   c                   ^    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
e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rG   )r   r   r   g      )
rN   real_usecaser   r?   
complex128r*   int8int64r>   float64r(   rG   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_   )rg   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^   )
rN   imag_usecaser   r?   rb   r*   rc   rd   r>   re   rf   s     r   	test_imagzTestComplex.test_imagU   rh   r!   c                 <    |                      t                     d S rj   )rq   rk   rl   s    r   test_imag_npmzTestComplex.test_imag_npm]   rn   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^   )
rN   conjugate_usecaser   r?   rb   r*   rc   rd   r>   re   rf   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 rj   )rv   rk   rl   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   rb   r?   rV   div_usecaser(   rG   rS   rR   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 rj   )r}   rk   rl   s    r   test_div_npmzTestComplex.test_div_npmu   s    N+++++r!   N)rW   rX   rY   rZ   rg   rm   rq   rs   rv   rx   r}   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                   \   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e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. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5dS )5	TestCMathz)
    Tests for cmath module support.
    c                     |                      |t          j        t          j        g|                                 |           d S rj   )rN   r   rb   r?   r*   )r(   rD   rG   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)rG   r;   r<   )rN   r   rb   r/   r?   r*   )r(   rD   rG   r;   r<   rS   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_usecaserZ   rl   s    r   
test_phasezTestCMath.test_phase       m-?@@@@@r!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   s    r   test_phase_npmzTestCMath.test_phase_npm       m^<<<<<r!   c                 F    |                      t          t                     d S r   )r   polar_usecaserZ   rl   s    r   
test_polarzTestCMath.test_polar   r   r!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   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_   )rV   rect_usecase)tpseed_valuesrS   rG   r(   s      r   do_testz$TestCMath.test_rect.<locals>.do_test   sK    @ @ @ @ @FOOLB8*fEOJJJJJr!   )r   re   r/   r>   r*   )r(   rG   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 rj   )r   rk   rl   s    r   test_rect_npmzTestCMath.test_rect_npm   rn   r!   c                 F    |                      t          t                     d S r   )r   isnan_usecaserZ   rf   s     r   
test_isnanzTestCMath.test_isnan       !!-1CDDDDDr!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   s    r   test_isnan_npmzTestCMath.test_isnan_npm       !!-@@@@@r!   c                 F    |                      t          t                     d S r   )r   isinf_usecaserZ   rf   s     r   
test_isinfzTestCMath.test_isinf   r   r!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   s    r   test_isinf_npmzTestCMath.test_isinf_npm   r   r!   c                 F    |                      t          t                     d S r   )r   isfinite_usecaserZ   rf   s     r   test_isfinitezTestCMath.test_isfinite   s     !!"24FGGGGGr!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   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_usecaserZ   rl   s    r   test_expzTestCMath.test_exp   $    k+=AFFFFFr!   c                 J    |                      t          t          d           d S r   )r   r   rk   rl   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_usecaserZ   rl   s    r   test_logzTestCMath.test_log   s    k+=>>>>>r!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   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   )rG   r;   )	rz   r%   r&   r/   r   rb   r?   rV   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 rj   )r   rk   rl   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_usecaserZ   rl   s    r   
test_log10zTestCMath.test_log10   r   r!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   s    r   test_log10_npmzTestCMath.test_log10_npm   r   r!   c                 F    |                      t          t                     d S r   )r   sqrt_usecaserZ   rl   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   rk   rangerN   r   rb   )r(   rS   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_usecaserZ   rl   s    r   	test_acoszTestCMath.test_acos   $    l,>QGGGGGr!   c                 J    |                      t          t          d           d S r   )r   r   rk   rl   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_usecaserZ   rl   s    r   	test_asinzTestCMath.test_asin   r   r!   c                 J    |                      t          t          d           d S r   )r   r   rk   rl   s    r   test_asin_npmzTestCMath.test_asin_npm   r   r!   c                 J    |                      t          t          d           d S r   )r   atan_usecaserZ   rl   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   rk   rl   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_usecaserZ   rl   s    r   test_coszTestCMath.test_cos   r   r!   c                 J    |                      t          t          d           d S r   )r   r   rk   rl   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_usecaserZ   rl   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   rk   rl   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_usecaserZ   rl   s    r   test_tanzTestCMath.test_tan	  r   r!   c                 J    |                      t          t          d           d S r   r   rl   s    r   test_tan_npmzTestCMath.test_tan_npm  r   r!   c                 F    |                      t          t                     d S r   )r   acosh_usecaserZ   rl   s    r   
test_acoshzTestCMath.test_acosh  r   r!   c                 F    |                      t          t                     d S r   )r   r   rk   rl   s    r   test_acosh_npmzTestCMath.test_acosh_npm  r   r!   c                 J    |                      t          t          d           d S r   )r   asinh_usecaserZ   rl   s    r   
test_asinhzTestCMath.test_asinh  $    m-?aHHHHHr!   c                 J    |                      t          t          d           d S r   )r   r   rk   rl   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_usecaserZ   rl   s    r   
test_atanhzTestCMath.test_atanh  r   r!   c                 J    |                      t          t          d           d S r   )r   r  rk   rl   s    r   test_atanh_npmzTestCMath.test_atanh_npm   r  r!   c                 J    |                      t          t          d           d S r   )r   cosh_usecaserZ   rl   s    r   	test_coshzTestCMath.test_cosh#  r   r!   c                 J    |                      t          t          d           d S r   )r   r
  rk   rl   s    r   test_cosh_npmzTestCMath.test_cosh_npm&  r   r!   c                 J    |                      t          t          d           d S r   )r   sinh_usecaserZ   rl   s    r   	test_sinhzTestCMath.test_sinh)  s$    l,>NNNNNr!   c                 J    |                      t          t          d           d S r   )r   r  rk   rl   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_usecaserZ   rl   s    r   	test_tanhzTestCMath.test_tanh/  r   r!   c                 J    |                      t          t          d           d S r   r  rl   s    r   test_tanh_npmzTestCMath.test_tanh_npm2  r   r!   )r   NN)6rW   rX   rY   __doc__r   r   r   r   r   r   rZ   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   r   z   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   r   complex_usecasesunittestrZ   rk   objectr   r\   r   rW   mainr   r!   r   <module>r!     s8        



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