
    shy                         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	J
r
  S SKrS rS rS rS rS rS	 r " S
 S\5      r " S S\\	5      r\S:X  a  \R*                  " 5         gg)    N)	vectorizeguvectorize)TestCaseCheckWarningsMixinskip_macos_fenv_errorsc                 .    U S:  a  [        S5      eU S-  $ )N        Value must be positiveg      ?)
ValueError)vals    t/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/npyufunc/test_errors.pysqrtr      s    
Sy122#:    c                     [        U R                  S   5       H"  nX   S:  a  [        S5      eX   US   -  X#'   M$     g )Nr   r
   )rangeshaper   )inpnoutis       r   
gufunc_foor      s?    399Q< 6A:566!A$ !r   c                 
    X-  $ N abs     r   truedivr      	    5Lr   c                 
    X-  $ r   r   r   s     r   floordivr!      	    6Mr   c                 
    X-  $ r   r   r   s     r   	remainderr$      r   r   c                 
    X-  $ r   r   r   s     r   powerr&   "   r"   r   c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)TestExceptions&   z(
Test raising exceptions inside ufuncs.
c                    [        S/40 UD6" [        5      n[        R                  " / SQ[        R                  S9n[        R
                  " U5      nU R                  [        5       nU" X45        S S S 5        U R                  S[        WR                  5      5        U R                  [        U5      / SQ5        g ! , (       d  f       NQ= f)Nzfloat64(float64))      	      dtyper
   )r+      r      r   r,   )r   r   nparrayfloat64
zeros_likeassertRaisesr   assertInstr	exceptionassertEquallistselfvectorize_argsfarrr   cms         r   check_ufunc_raise TestExceptions.check_ufunc_raise+   s    )*=n=dChh,BJJ?mmC z*bcK +.BLL0ABc$67	 +*s   (	B<<
C
c                 "    U R                  SS9  g NTnopythonrE   r@   s    r   test_ufunc_raiseTestExceptions.test_ufunc_raise5       -r   c                 "    U R                  SS9  g NT)forceobjrK   rL   s    r   test_ufunc_raise_objmode'TestExceptions.test_ufunc_raise_objmode8   rO   r   c                 V   [        S/S40 UD6" [        5      n[        R                  " / SQ[        R                  S9n[        R
                  " U5      nU R                  [        5       nU" USU5        S S S 5        U R                  [        U5      / SQ5        g ! , (       d  f       N,= f)Nzint32[:], int32[:], int32[:]z(n),()->(n))r+   r3   r,   r1   r3   )r3   r,   r   r   )
r   r   r5   r6   int32r8   r9   r   r=   r>   r?   s         r   check_gufunc_raise!TestExceptions.check_gufunc_raise;   s    78- *(**46hh}BHH5mmC z*bc1cN + 	cL1 +*s   )B
B(c                 "    U R                  SS9  g rH   rX   rL   s    r   test_gufunc_raise TestExceptions.test_gufunc_raiseE       .r   c                 "    U R                  SS9  g rQ   r[   rL   s    r   test_gufunc_raise_objmode(TestExceptions.test_gufunc_raise_objmodeH   r^   r   r   N)__name__
__module____qualname____firstlineno____doc__rE   rM   rS   rX   r\   r`   __static_attributes__r   r   r   r(   r(   &   s%    8..2//r   r(   c                   d    \ rS rSrSrS rS rS rS rS r	\
S 5       rS	 rS
 rS rS rS rSrg)TestFloatingPointExceptionsK   zo
Test floating-point exceptions inside ufuncs.

Note the warnings emitted by Numpy reflect IEEE-754 semantics.
c                 j   [        SS9" [        5      n[        R                  " / SQUS9n[        R                  " / SQUS9n[        R                  " S[	        S5      [	        S5      S	/5      nU R                  S
S/5         U" X45      nU R                  Xe5        SSS5        g! , (       d  f       g= f)z
Test 1 / 0 and 0 / 0.
TrI   )      @      @r	          @r1         ?r	   r	         @rl   infnan       @divide by zero encounteredinvalid value encounteredN)r   r   r5   r6   floatcheck_warningsassertPreciseEqualr@   r2   rB   r   r   expectedress          r   check_truediv_real.TestFloatingPointExceptions.check_truediv_realR   s     t$W-HH%U3HH%U388RuuU|R@A  ">"="? @A'C##C2@ @ @s   B$$
B2c                 B    U R                  [        R                  5        g r   )r}   r5   r7   rL   s    r   test_truediv_float.TestFloatingPointExceptions.test_truediv_float_   s    

+r   c                 B    U R                  [        R                  5        g r   )r}   r5   rW   rL   s    r   test_truediv_integer0TestFloatingPointExceptions.test_truediv_integerb   s    )r   c                 6   [        SS9" U5      n[        R                  " / SQ5      n[        R                  " / SQ5      n[        R                  " U5      nU R                  U5         U" XV5      nU R	                  X5        SSS5        g! , (       d  f       g= f)z
Test 1 // 0 and 0 // 0.
TrI   )rl   rm   r	   g      "@ro   Nr   r5   r6   rx   ry   )	r@   pyfuncvaluesmessagesrB   r   r   r{   r|   s	            r   check_divmod_float.TestFloatingPointExceptions.check_divmod_floate   sp     t$V,HH%&HH%&88F#  *A'C##C2 +**   'B


Bc                 b    U R                  [        S[        S5      [        S5      S/SS/5        g )Nrl   rr   rs   rt   ru   rv   )r   r!   rw   rL   s    r   test_floordiv_float/TestFloatingPointExceptions.test_floordiv_floatq   s1    !$eElE%L# F!=!<!>	?r   c                 `    U R                  [        S[        S5      [        S5      S/S/5        g )Nr	   rs   rp   rv   )r   r$   rw   rL   s    r   test_remainder_float0TestFloatingPointExceptions.test_remainder_floatw   s,    	!$eElE%L# F!< =	?r   c                 6   [        SS9" U5      n[        R                  " / SQ5      n[        R                  " / SQ5      n[        R                  " U5      nU R                  / 5         U" XE5      nU R	                  Xv5        SSS5        g! , (       d  f       g= f)z
Test 1 % 0 and 0 % 0.
TrI   )      r   r.   )r+   r   r   r,   Nr   )r@   r   r   rB   r   r   r{   r|   s           r   check_divmod_int,TestFloatingPointExceptions.check_divmod_int}   sn     t$V,HH\"HH\"88F#  $A'C##C2 %$$r   c                 4    U R                  [        / SQ5        g )N)r   r   r   r3   )r   r!   rL   s    r   test_floordiv_int-TestFloatingPointExceptions.test_floordiv_int   s    h5r   c                 4    U R                  [        / SQ5        g )N)r   r   r   r+   )r   r$   rL   s    r   test_remainder_int.TestFloatingPointExceptions.test_remainder_int   s    i6r   c                 n   [        SS9" [        5      n[        R                  " / SQ5      n[        R                  " / SQ5      n[        R                  " S[	        S5      [	        S5      S/5      nU R                  SS	/5         U" X#5      nU R                  XT5        S
S
S
5        g
! , (       d  f       g
= f)z%
Test 0 ** -1 and 2 ** <big number>.
TrI   )rl   r	   rt   rn   )rp   g      g@xDrq   rl   rr   g      @ru   zoverflow encounteredN)r   r&   r5   r6   rw   rx   ry   )r@   rB   r   r   r{   r|   s         r   test_power_float,TestFloatingPointExceptions.test_power_float   s     t$U+HH%&HH()88RuuU|UCD  ">"8": ;A'C##C2; ; ;s   B&&
B4c                 `   [         R                  n[        S/SS9" [        5      n[         R                  " / SQUS9n[         R                  " / SQUS9n[         R                  " / SQUS9nU R                  / 5         U" X45      nU R                  Xe5        SSS5        g! , (       d  f       g= f)	z_
Test 0 ** -1.
Note 2 ** <big number> returns an undefined value (depending
on the algorithm).
zint64(int64, int64)TrI   )r   r   r   r1   )r+   r/   r3   )r   l         $   N)r5   int64r   r&   r6   rx   ry   rz   s          r   test_power_integer.TestFloatingPointExceptions.test_power_integer   s     ,-=eDHHYe,HHZu-88O59  $A'C##C2 %$$s   <B
B-r   N)rb   rc   rd   re   rf   r}   r   r   r   r   r   r   r   r   r   r   r   rg   r   r   r   ri   ri   K   sM    3,*
3? ? ?
36733r   ri   __main__)
contextlibsysnumpyr5   numbar   r   numba.tests.supportr   r   r   unittestr   r   r   r!   r$   r&   r(   ri   rb   mainr   r   r   <module>r      ss     
  (9 9 #/X #/J_3(,> _3D zMMO r   