
     ir,                         S SK r S SKrS SKrS SKJrJr  S SKJr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skip_if_py314   )*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       O/mnt/rpi/venvs/whisper/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_valuesr5   r6   flagstxcfuncr4   vxexpectedegotr7   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/   r0   r1   r2   r3   )r4   r5   r7   )
r   setr   r8   r9   r:   r;   r<   ZeroDivisionErrorr=   )r   r>   value_typesvaluesr5   rA   rB   tyrC   r4   rD   vyrE   rF   rG   r7   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_flagsrH   rQ   __static_attributes__rS       r"   r   r      s1    KKK
 9:4*M  <=+<rZ   r   c                   f    \ 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	 5       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rA   )r   r   r   g      )
rH   real_usecaser   r9   
complex128r#   int8int64r8   float64r   rA   s     r"   	test_realTestComplex.test_realJ       |eoou7G7G%H((*% 	 	9|ejj%++%>! 	 	0|emmU]]%CT{% 	 	1rZ   c                 *    U R                  [        S9  g Nr`   )rh   no_pyobj_flagsr   s    r"   test_real_npmTestComplex.test_real_npmR       ^,rZ   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_   )
rH   imag_usecaser   r9   rc   r#   rd   re   r8   rf   rg   s     r"   	test_imagTestComplex.test_imagU   rj   rZ   c                 *    U R                  [        S9  g rl   )rt   rm   rn   s    r"   test_imag_npmTestComplex.test_imag_npm]   rq   rZ   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_   )
rH   conjugate_usecaser   r9   rc   r#   rd   re   r8   rf   rg   s     r"   test_conjugateTestComplex.test_conjugate`   s    (5??E<L<L*M((*% 	 	9(5::u{{*C! 	 	0(5==%--*HT{% 	 	1rZ   c                 *    U R                  [        S9  g rl   )r{   rm   rn   s    r"   test_conjugate_npmTestComplex.test_conjugate_npmh   s    .1rZ   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   rc   r9   rQ   div_usecaser   rA   rN   rM   s       r"   test_divTestComplex.test_divk   sj    
 i''(8(8(:D<L<L<NOP((%*:*:;9;[FrZ   c                 *    U R                  [        S9  g rl   )r   rm   rn   s    r"   test_div_npmTestComplex.test_div_npmu   s    N+rZ   rS   N)rT   rU   rV   rW   rX   rh   ro   rt   rw   r{   r~   r   r   r   rY   rS   rZ   r"   r\   r\   H   sL    0 1- 1 1- $6 12 0 G , ,rZ   r\   c                   h   \ 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 5       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. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4r7g)6	TestCMathz   z!
Tests for cmath module support.
c                     U R                  U[        R                  [        R                  /U R	                  5       US9  g rl   )rH   r   rc   r9   r#   )r   r>   rA   s      r"   check_predicate_funcTestCMath.check_predicate_func   s4    v 0 0%//B((*% 	 	9rZ   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)rA   r5   r6   )rH   r   rc   r(   r9   r#   )r   r>   rA   r5   r6   rN   s         r"   check_unary_funcTestCMath.check_unary_func   sj    v 0 013!1!1!35& 	 	( 	v04!2!2!4E& 	 	(rZ   c                 8    U R                  [        [        5        g N)r   phase_usecaserX   rn   s    r"   
test_phaseTestCMath.test_phase       m-?@rZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_phase_npmTestCMath.test_phase_npm       m^<rZ   c                 8    U R                  [        [        5        g r   )r   polar_usecaserX   rn   s    r"   
test_polarTestCMath.test_polar   r   rZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_polar_npmTestCMath.test_polar_npm   r   rZ   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realrQ   rect_usecase)tpseed_valueszrN   rA   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   rf   r(   r8   r#   )r   rA   r   s   `` r"   	test_rectTestCMath.test_rect   s9    	K 	t//12t0023rZ   c                 *    U R                  [        S9  g rl   )r   rm   rn   s    r"   test_rect_npmTestCMath.test_rect_npm   rq   rZ   c                 8    U R                  [        [        5        g r   )r   isnan_usecaserX   rg   s     r"   
test_isnanTestCMath.test_isnan       !!-1CDrZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_isnan_npmTestCMath.test_isnan_npm       !!-@rZ   c                 8    U R                  [        [        5        g r   )r   isinf_usecaserX   rg   s     r"   
test_isinfTestCMath.test_isinf   r   rZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_isinf_npmTestCMath.test_isinf_npm   r   rZ   c                 8    U R                  [        [        5        g r   )r   isfinite_usecaserX   rg   s     r"   test_isfiniteTestCMath.test_isfinite   s    !!"24FGrZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_isfinite_npmTestCMath.test_isfinite_npm   s    !!"2NCrZ   c                 6    U R                  [        [        SS9  g N   )r5   )r   exp_usecaserX   rn   s    r"   test_expTestCMath.test_exp       k+=AFrZ   c                 6    U R                  [        [        SS9  g r   )r   r   rm   rn   s    r"   test_exp_npmTestCMath.test_exp_npm   s     	k>BrZ   c                 8    U R                  [        [        5        g r   )r   log_usecaserX   rn   s    r"   test_logTestCMath.test_log   s    k+=>rZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_log_npmTestCMath.test_log_npm   s    k>:rZ   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   )rA   r5   )	r   r   r   r(   r   rc   r9   rQ   log_base_usecaser   s       r"   test_log_baseTestCMath.test_log_base   sq    i''(8(8(:D<L<L<NOP((%*:*:;9;(+U 	 	 rZ   c                 *    U R                  [        S9  g rl   )r   rm   rn   s    r"   test_log_base_npmTestCMath.test_log_base_npm   s    0rZ   c                 8    U R                  [        [        5        g r   )r   log10_usecaserX   rn   s    r"   
test_log10TestCMath.test_log10   r   rZ   c                 8    U R                  [        [        5        g r   )r   r   rm   rn   s    r"   test_log10_npmTestCMath.test_log10_npm   r   rZ   c                 8    U R                  [        [        5        g r   )r   sqrt_usecaserX   rn   s    r"   	test_sqrtTestCMath.test_sqrt   s    l,>?rZ   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   rm   rangerH   r   rc   )r   irN   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_usecaserX   rn   s    r"   	test_acosTestCMath.test_acos       l,>QGrZ   c                 6    U R                  [        [        SS9  g r   )r   r   rm   rn   s    r"   test_acos_npmTestCMath.test_acos_npm       lNCrZ   c                 6    U R                  [        [        SS9  g r   )r   asin_usecaserX   rn   s    r"   	test_asinTestCMath.test_asin   r   rZ   c                 6    U R                  [        [        SS9  g r   )r   r   rm   rn   s    r"   test_asin_npmTestCMath.test_asin_npm   r   rZ   c                 6    U R                  [        [        SS9  g r   )r   atan_usecaserX   rn   s    r"   	test_atanTestCMath.test_atan   s    l,>QHrZ   c                 6    U R                  [        [        SS9  g r   )r   r  rm   rn   s    r"   test_atan_npmTestCMath.test_atan_npm   s    lNDrZ   c                 6    U R                  [        [        SS9  g r   )r   cos_usecaserX   rn   s    r"   test_cosTestCMath.test_cos   r   rZ   c                 6    U R                  [        [        SS9  g r   )r   r  rm   rn   s    r"   test_cos_npmTestCMath.test_cos_npm   s    k>BrZ   c                 6    U R                  [        [        SS9  g Neps)r6   )r   sin_usecaserX   rn   s    r"   test_sinTestCMath.test_sin  s    k+=uMrZ   c                 6    U R                  [        [        SS9  g r  )r   r  rm   rn   s    r"   test_sin_npmTestCMath.test_sin_npm  s    k>5IrZ   c                 6    U R                  [        [        SS9  g r   r   tan_usecaserX   rn   s    r"   test_tanTestCMath.test_tan	  r   rZ   c                 6    U R                  [        [        SS9  g r   r  rn   s    r"   test_tan_npmTestCMath.test_tan_npm  r   rZ   c                 8    U R                  [        [        5        g r   )r   acosh_usecaserX   rn   s    r"   
test_acoshTestCMath.test_acosh  r   rZ   c                 8    U R                  [        [        5        g r   )r   r&  rm   rn   s    r"   test_acosh_npmTestCMath.test_acosh_npm  r   rZ   c                 6    U R                  [        [        SS9  g r   )r   asinh_usecaserX   rn   s    r"   
test_asinhTestCMath.test_asinh      m-?aHrZ   c                 6    U R                  [        [        SS9  g r   )r   r-  rm   rn   s    r"   test_asinh_npmTestCMath.test_asinh_npm      m^!DrZ   c                 6    U R                  [        [        SS9  g r   )r   atanh_usecaserX   rn   s    r"   
test_atanhTestCMath.test_atanh  r0  rZ   c                 6    U R                  [        [        SS9  g r   )r   r6  rm   rn   s    r"   test_atanh_npmTestCMath.test_atanh_npm   r4  rZ   c                 6    U R                  [        [        SS9  g r   )r   cosh_usecaserX   rn   s    r"   	test_coshTestCMath.test_cosh#  r   rZ   c                 6    U R                  [        [        SS9  g r   )r   r=  rm   rn   s    r"   test_cosh_npmTestCMath.test_cosh_npm&  r   rZ   c                 6    U R                  [        [        SS9  g r  )r   sinh_usecaserX   rn   s    r"   	test_sinhTestCMath.test_sinh)  s    l,>NrZ   c                 6    U R                  [        [        SS9  g r  )r   rD  rm   rn   s    r"   test_sinh_npmTestCMath.test_sinh_npm,  s    lNEJrZ   c                 6    U R                  [        [        SS9  g r   r   tanh_usecaserX   rn   s    r"   	test_tanhTestCMath.test_tanh/  r   rZ   c                 6    U R                  [        [        SS9  g r   rK  rn   s    r"   test_tanh_npmTestCMath.test_tanh_npm2  r   rZ   rS   )r   NN)8rT   rU   rV   rW   __doc__r   r   r   r   r   r   rX   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.  r2  r7  r:  r>  rA  rE  rH  rM  rP  rY   rS   rZ   r"   r   r   z   sK   9 ?C $(A=A= 1 4-
  2 EA  2 EA #5 HD
GC?; #5   1 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rZ   r   __main__)r   r&   r   numbar   r   numba.tests.supportr   r   complex_usecasesunittestrX   rm   objectr   r\   r   rT   mainrS   rZ   r"   <module>rZ     sv      
  7   $' d#7<f 7<t/,/8 /,dyH yHx zMMO rZ   