
    sh=,                         S SK r S SKrS SKrS SKJrJr  S SKJr  SSK7  S SK	r	SS0r
SS0r " S	 S
\5      r " S S\\5      r " S S\\5      r\S:X  a  \	R"                  " 5         gg)    N)jittypes)TestCase   )*forceobjTnopythonc                   D    \ rS rSrS rS rS rSS\4S jrS\4S jr	S	r
g)
BaseComplexTest   c           
          SSSSSS[        S5      [        S5      /n[        R                  S	:w  a  U[        S
5      /-  n[        R                  " X5       VVs/ s H  u  p#[        X#5      PM     snn$ s  snnf )N               r         ?g      -inf+infwin32nan)floatsysplatform	itertoolsproductcomplexselfrealsxys       l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_complex.pybasic_valuesBaseComplexTest.basic_values   sj    tQD$vf/<<7"eEl^#E*3*;*;E*IJ*I$!*IJJJs   A4c           
      0   SSSS[         R                  * [         R                  7[        S5      [        S5      /n[        R                  S:w  a  U[        S5      /-  n[
        R                  " X5       VVs/ s H  u  p#[        X#5      PM     snn$ s  snnf )	Nr   r   r   r   r   r   r   r   )mathpir   r   r   r   r   r   r   s       r!   more_valuesBaseComplexTest.more_values   sv    tQTWWHtwwhvf/<<7"eEl^#E*3*;*;E*IJ*I$!*IJJJs   7Bc           
          SSSS[         R                  * [         R                  7[        S5      [        S5      /n[        R                  " X5       VVs/ s H  u  p#[        X#5      PM     snn$ s  snnf )Nr   r   r   r   infr   )r%   r&   r   r   r   r   r   s       r!   non_nan_valuesBaseComplexTest.non_nan_values   sZ    tQTWWHtwwhuuV}.*3*;*;E*IJ*I$!*IJJJs   A/r   Nc                 ^   U Ht  n[        U440 UD6" U5      nU[        R                  [        R                  4;   a  SOSn	U H0  n
 U" U
5      nU" U
5      nSU
< SU	< 3nU R                  XU	XEUS9  M2     Mv     g ! [         a&  nU R                  S[        U5      5         S nAMd  S nAff = f)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_valuesr4   r5   flagstxcfuncr3   vxexpectedegotr6   s                  r!   	run_unaryBaseComplexTest.run_unary#   s    B''/E!emmU__%EE88D%bzH Bi57>''D-1 ( M   " MM"5s1v>s   A<<
B,B''B,c           
         U H  u  pg[        Xg440 UD6" U5      n[        Xg/5      [        [        R                  [        R                  /5      -  (       a  SOSn	U H2  u  p U" X5      nU" X5      nSX4< SU	< 3nU R                  XU	XOS9  M4     M     g ! [
         a&  nU R                  S[        U5      5         S nAMf  S nAf[         a     Mv  f = f)Nr.   r/   r0   r1   r2   )r3   r4   r6   )
r   setr   r7   r8   r9   r:   r;   ZeroDivisionErrorr<   )r   r=   value_typesvaluesr4   r@   rA   tyrB   r3   rC   vyrD   rE   rF   r6   s                   r!   
run_binaryBaseComplexTest.run_binary3   s    !FB*E*62EB8}sEMM5??+K'LL !  !%b~H Bm68XtD''D-1 ( < ! " " MM"5s1v>( s   "B
C!CCC )__name__
__module____qualname____firstlineno__r"   r'   r+   enable_pyobj_flagsrG   rP   __static_attributes__rR       r!   r   r      s1    KKK
 9:4*M  <=+<rY   r   c                   \    \ rS rSr\4S jrS r\4S jrS r\4S jr	S r
\4S jrS	 rS
rg)TestComplexH   c                 `   U R                  [        [        R                  [        R                  /U R                  5       US9  U R                  [        [        R                  [        R                  // SQUS9  U R                  [        [        R                  [        R                  /SS/US9  g Nr@   )r   r   r   g      )
rG   real_usecaser   r8   
complex128r"   int8int64r7   float64r   r@   s     r!   	test_realTestComplex.test_realJ       |eoou7G7G%H((*% 	 	9|ejj%++%>! 	 	0|emmU]]%CT{% 	 	1rY   c                 *    U R                  [        S9  g Nr_   )rg   no_pyobj_flagsr   s    r!   test_real_npmTestComplex.test_real_npmR       ^,rY   c                 `   U R                  [        [        R                  [        R                  /U R                  5       US9  U R                  [        [        R                  [        R                  // SQUS9  U R                  [        [        R                  [        R                  /SS/US9  g r^   )
rG   imag_usecaser   r8   rb   r"   rc   rd   r7   re   rf   s     r!   	test_imagTestComplex.test_imagU   ri   rY   c                 *    U R                  [        S9  g rk   )rs   rl   rm   s    r!   test_imag_npmTestComplex.test_imag_npm]   rp   rY   c                 `   U R                  [        [        R                  [        R                  /U R                  5       US9  U R                  [        [        R                  [        R                  // SQUS9  U R                  [        [        R                  [        R                  /SS/US9  g r^   )
rG   conjugate_usecaser   r8   rb   r"   rc   rd   r7   re   rf   s     r!   test_conjugateTestComplex.test_conjugate`   s    (5??E<L<L*M((*% 	 	9(5::u{{*C! 	 	0(5==%--*HT{% 	 	1rY   c                 *    U R                  [        S9  g rk   )rz   rl   rm   s    r!   test_conjugate_npmTestComplex.test_conjugate_npmh   s    .1rY   c                 &   [        [        R                  " U R                  5       U R                  5       5      5      n[        R
                  [        R
                  4[        R                  [        R                  4/nU R                  [        X2US9  g)z>
Test complex.__div__ implementation with non-trivial values.
r_   N)	listr   r   r'   r   rb   r8   rP   div_usecaser   r@   rM   rL   s       r!   test_divTestComplex.test_divk   sj    
 i''(8(8(:D<L<L<NOP((%*:*:;9;[FrY   c                 *    U R                  [        S9  g rk   )r   rl   rm   s    r!   test_div_npmTestComplex.test_div_npmu   s    N+rY   rR   N)rS   rT   rU   rV   rW   rg   rn   rs   rv   rz   r}   r   r   rX   rR   rY   r!   r[   r[   H   s=    0 1- 1 1- $6 12 0 G,rY   r[   c                   ^   \ rS rSrSrS r  S5S jrS rS rS r	S	 r
\4S
 jrS r\4S jrS r\4S jrS r\4S jrS rS rS rS rS r\4S jrS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4r6g)6	TestCMathy   z!
Tests for cmath module support.
c                     U R                  U[        R                  [        R                  /U R	                  5       US9  g rk   )rG   r   rb   r8   r"   )r   r=   r@   s      r!   check_predicate_funcTestCMath.check_predicate_func~   s4    v 0 0%//B((*% 	 	9rY   Nc           	          U R                  U[        R                  /U=(       d    U R                  5       X#US9  U R                  U[        R                  /U=(       d    U R                  5       X#US9  g )N)r@   r4   r5   )rG   r   rb   r'   r8   r"   )r   r=   r@   r4   r5   rM   s         r!   check_unary_funcTestCMath.check_unary_func   sj    v 0 013!1!1!35& 	 	( 	v04!2!2!4E& 	 	(rY   c                 8    U R                  [        [        5        g N)r   phase_usecaserW   rm   s    r!   
test_phaseTestCMath.test_phase       m-?@rY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_phase_npmTestCMath.test_phase_npm       m^<rY   c                 8    U R                  [        [        5        g r   )r   polar_usecaserW   rm   s    r!   
test_polarTestCMath.test_polar   r   rY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_polar_npmTestCMath.test_polar_npm   r   rY   c                    ^ ^ UU 4S jnU" [         R                  T R                  5       5        U" [         R                  T R	                  5       5        g )Nc                    > U Vs/ s HR  n[         R                  " UR                  5      (       a  UR                  S:X  d  M:  UR                  UR                  4PMT     nnTR	                  [
        X 4/UTS9  g s  snf )Nr   r_   )r%   isinfimagrealrP   rect_usecase)tpseed_valueszrM   r@   r   s       r!   do_test$TestCMath.test_rect.<locals>.do_test   sj    0; @1!ZZ//166Q; 'qvvqvv&F @OOLB8*fEOJ@s   9A:A:)r   re   r'   r7   r"   )r   r@   r   s   `` r!   	test_rectTestCMath.test_rect   s9    	K 	t//12t0023rY   c                 *    U R                  [        S9  g rk   )r   rl   rm   s    r!   test_rect_npmTestCMath.test_rect_npm   rp   rY   c                 8    U R                  [        [        5        g r   )r   isnan_usecaserW   rf   s     r!   
test_isnanTestCMath.test_isnan       !!-1CDrY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_isnan_npmTestCMath.test_isnan_npm       !!-@rY   c                 8    U R                  [        [        5        g r   )r   isinf_usecaserW   rf   s     r!   
test_isinfTestCMath.test_isinf   r   rY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_isinf_npmTestCMath.test_isinf_npm   r   rY   c                 8    U R                  [        [        5        g r   )r   isfinite_usecaserW   rf   s     r!   test_isfiniteTestCMath.test_isfinite   s    !!"24FGrY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_isfinite_npmTestCMath.test_isfinite_npm   s    !!"2NCrY   c                 6    U R                  [        [        SS9  g N   )r4   )r   exp_usecaserW   rm   s    r!   test_expTestCMath.test_exp       k+=AFrY   c                 6    U R                  [        [        SS9  g r   )r   r   rl   rm   s    r!   test_exp_npmTestCMath.test_exp_npm   s     	k>BrY   c                 8    U R                  [        [        5        g r   )r   log_usecaserW   rm   s    r!   test_logTestCMath.test_log   s    k+=>rY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_log_npmTestCMath.test_log_npm   s    k>:rY   c                 (   [        [        R                  " U R                  5       U R                  5       5      5      n[        R
                  [        R
                  4[        R                  [        R                  4/nU R                  [        X2USS9  g )N   )r@   r4   )	r   r   r   r'   r   rb   r8   rP   log_base_usecaser   s       r!   test_log_baseTestCMath.test_log_base   sq    i''(8(8(:D<L<L<NOP((%*:*:;9;(+U 	 	 rY   c                 *    U R                  [        S9  g rk   )r   rl   rm   s    r!   test_log_base_npmTestCMath.test_log_base_npm   s    0rY   c                 8    U R                  [        [        5        g r   )r   log10_usecaserW   rm   s    r!   
test_log10TestCMath.test_log10   r   rY   c                 8    U R                  [        [        5        g r   )r   r   rl   rm   s    r!   test_log10_npmTestCMath.test_log10_npm   r   rY   c                 8    U R                  [        [        5        g r   )r   sqrt_usecaserW   rm   s    r!   	test_sqrtTestCMath.test_sqrt   s    l,>?rY   c                     U R                  [        [        5        [        SS5       Vs/ s H	  nSU-  * PM     nnU R	                  [        [
        R                  /U[        S9  g s  snf )N$   )   
   r_   )r   r   rl   rangerG   r   rb   )r   irM   s      r!   test_sqrt_npmTestCMath.test_sqrt_npm   s\    lN; %*"bM2Mq27(M2|e&6&6%7^ 	 	5 3s   A%c                 6    U R                  [        [        SS9  g r   )r   acos_usecaserW   rm   s    r!   	test_acosTestCMath.test_acos       l,>QGrY   c                 6    U R                  [        [        SS9  g r   )r   r   rl   rm   s    r!   test_acos_npmTestCMath.test_acos_npm       lNCrY   c                 6    U R                  [        [        SS9  g r   )r   asin_usecaserW   rm   s    r!   	test_asinTestCMath.test_asin   r   rY   c                 6    U R                  [        [        SS9  g r   )r   r   rl   rm   s    r!   test_asin_npmTestCMath.test_asin_npm   r   rY   c                 6    U R                  [        [        SS9  g r   )r   atan_usecaserW   rm   s    r!   	test_atanTestCMath.test_atan   s    l,>QHrY   c                 6    U R                  [        [        SS9  g r   )r   r  rl   rm   s    r!   test_atan_npmTestCMath.test_atan_npm   s    lNDrY   c                 6    U R                  [        [        SS9  g r   )r   cos_usecaserW   rm   s    r!   test_cosTestCMath.test_cos   r   rY   c                 6    U R                  [        [        SS9  g r   )r   r  rl   rm   s    r!   test_cos_npmTestCMath.test_cos_npm   s    k>BrY   c                 6    U R                  [        [        SS9  g Neps)r5   )r   sin_usecaserW   rm   s    r!   test_sinTestCMath.test_sin   s    k+=uMrY   c                 6    U R                  [        [        SS9  g r  )r   r  rl   rm   s    r!   test_sin_npmTestCMath.test_sin_npm  s    k>5IrY   c                 6    U R                  [        [        SS9  g r   r   tan_usecaserW   rm   s    r!   test_tanTestCMath.test_tan  r   rY   c                 6    U R                  [        [        SS9  g r   r  rm   s    r!   test_tan_npmTestCMath.test_tan_npm
  r   rY   c                 8    U R                  [        [        5        g r   )r   acosh_usecaserW   rm   s    r!   
test_acoshTestCMath.test_acosh  r   rY   c                 8    U R                  [        [        5        g r   )r   r%  rl   rm   s    r!   test_acosh_npmTestCMath.test_acosh_npm  r   rY   c                 6    U R                  [        [        SS9  g r   )r   asinh_usecaserW   rm   s    r!   
test_asinhTestCMath.test_asinh      m-?aHrY   c                 6    U R                  [        [        SS9  g r   )r   r,  rl   rm   s    r!   test_asinh_npmTestCMath.test_asinh_npm      m^!DrY   c                 6    U R                  [        [        SS9  g r   )r   atanh_usecaserW   rm   s    r!   
test_atanhTestCMath.test_atanh  r/  rY   c                 6    U R                  [        [        SS9  g r   )r   r5  rl   rm   s    r!   test_atanh_npmTestCMath.test_atanh_npm  r3  rY   c                 6    U R                  [        [        SS9  g r   )r   cosh_usecaserW   rm   s    r!   	test_coshTestCMath.test_cosh!  r   rY   c                 6    U R                  [        [        SS9  g r   )r   r<  rl   rm   s    r!   test_cosh_npmTestCMath.test_cosh_npm$  r   rY   c                 6    U R                  [        [        SS9  g r  )r   sinh_usecaserW   rm   s    r!   	test_sinhTestCMath.test_sinh'  s    l,>NrY   c                 6    U R                  [        [        SS9  g r  )r   rC  rl   rm   s    r!   test_sinh_npmTestCMath.test_sinh_npm*  s    lNEJrY   c                 6    U R                  [        [        SS9  g r   r   tanh_usecaserW   rm   s    r!   	test_tanhTestCMath.test_tanh-  r   rY   c                 6    U R                  [        [        SS9  g r   rJ  rm   s    r!   test_tanh_npmTestCMath.test_tanh_npm0  r   rY   rR   )r   NN)7rS   rT   rU   rV   __doc__r   r   r   r   r   r   rW   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-  r1  r6  r9  r=  r@  rD  rG  rL  rO  rX   rR   rY   r!   r   r   y   s<   9 ?C $(A=A= 1 4-
  2 EA  2 EA #5 HD
GC?; #5  1A=@5HDHDIEGCNJGG
A=IEIEHDOKHHrY   r   __main__)r   r%   r   numbar   r   numba.tests.supportr   complex_usecasesunittestrW   rl   objectr   r[   r   rS   mainrR   rY   r!   <module>rY     sv      
  (   $' d#7<f 7<t.,/8 .,bxH xHv zMMO rY   