
    J/Phy                         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	m
Z
 d dlZd Zd Zd Zd Zd Zd	 Z G d
 de          Z G d dee	          Zedk    r ej                     dS dS )    N)	vectorizeguvectorize)TestCaseCheckWarningsMixinskip_macos_fenv_errorsc                 6    | dk     rt          d          | dz  S )N        Value must be positiveg      ?)
ValueError)vals    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/npyufunc/test_errors.pysqrtr      s$    
Syy1222#:    c                     t          | j        d                   D ]1}| |         dk     rt          d          | |         |d         z  ||<   2d S )Nr   r
   )rangeshaper   )inpnoutis       r   
gufunc_foor      s\    39Q<    q6A::5666Q!A$A r   c                     | |z  S N abs     r   truedivr          q5Lr   c                     | |z  S r   r   r   s     r   floordivr!          6Mr   c                     | |z  S r   r   r   s     r   	remainderr$      r   r   c                     | |z  S r   r   r   s     r   powerr&   "   r"   r   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestExceptionsz0
    Test raising exceptions inside ufuncs.
    c                     t          dgfi |t                    }t          j        g dt          j                  }t          j        |          }|                     t                    5 } |||           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t          |          g d           d S )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_raisez TestExceptions.check_ufunc_raise+   s   =I)*==n==dCCh,,,BJ???mC  z** 	bAc3KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	.BL0A0ABBBc$6$6$677777s   -BB
B
c                 2    |                      d           d S NTnopythonrD   r?   s    r   test_ufunc_raisezTestExceptions.test_ufunc_raise5       -----r   c                 2    |                      d           d S NT)forceobjrI   rJ   s    r   test_ufunc_raise_objmodez'TestExceptions.test_ufunc_raise_objmode8   rL   r   c                 t    t          dgdfi |t                    }t          j        g dt          j                  }t          j        |          }|                     t                    5 } ||d|           d d d            n# 1 swxY w Y   |                     t          |          g d           d S )Nzint32[:], int32[:], int32[:]z(n),()->(n))r*   r2   r+   r0   r2   )r2   r+   r   r   )
r   r   r4   r5   int32r7   r8   r   r<   r=   r>   s         r   check_gufunc_raisez!TestExceptions.check_gufunc_raise;   s    *K78- * *(* **46 6h}}}BH555mC  z** 	bAc1cNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	cLLL11111s   .BBBc                 2    |                      d           d S rF   rT   rJ   s    r   test_gufunc_raisez TestExceptions.test_gufunc_raiseE       .....r   c                 2    |                      d           d S rN   rV   rJ   s    r   test_gufunc_raise_objmodez(TestExceptions.test_gufunc_raise_objmodeH   rX   r   N)
__name__
__module____qualname____doc__rD   rK   rP   rT   rW   rZ   r   r   r   r(   r(   &   sx         8 8 8. . .. . .2 2 2/ / // / / / /r   r(   c                   d    e Zd ZdZd Zd Zd Zd Zd Ze	d             Z
d Zd	 Zd
 Zd Zd ZdS )TestFloatingPointExceptionsz{
    Test floating-point exceptions inside ufuncs.

    Note the warnings emitted by Numpy reflect IEEE-754 semantics.
    c                     t          d          t                    }t          j        g d|          }t          j        g d|          }t          j        dt	          d          t	          d          d	g          }|                     d
dg          5   |||          }|                     ||           ddd           dS # 1 swxY w Y   dS )z'
        Test 1 / 0 and 0 / 0.
        TrG   )      @      @r	          @r0         ?r	   r	         @rb   infnan       @divide by zero encounteredinvalid value encounteredN)r   r   r4   r5   floatcheck_warningsassertPreciseEqualr?   r1   rA   r   r   expectedress          r   check_truediv_realz.TestFloatingPointExceptions.check_truediv_realR   s$    %It$$$W--H%%%U333H%%%U3338RuuU||R@AA  ">"="? @ @ 	3 	3!Aq''C##C222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   #CCCc                 D    |                      t          j                   d S r   )rs   r4   r6   rJ   s    r   test_truediv_floatz.TestFloatingPointExceptions.test_truediv_float_   s    
+++++r   c                 D    |                      t          j                   d S r   )rs   r4   rS   rJ   s    r   test_truediv_integerz0TestFloatingPointExceptions.test_truediv_integerb   s    )))))r   c                 X    t          d          |          }t          j        g d          }t          j        g d          }t          j        |          }|                     |          5   |||          }|                     ||           ddd           dS # 1 swxY w Y   dS )z)
        Test 1 // 0 and 0 // 0.
        TrG   )rb   rc   r	   g      "@re   Nr   r4   r5   rn   ro   )	r?   pyfuncvaluesmessagesrA   r   r   rq   rr   s	            r   check_divmod_floatz.TestFloatingPointExceptions.check_divmod_floate   s     %It$$$V,,H%%%&&H%%%&&8F##  ** 	3 	3!Aq''C##C222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3   /#BB#&B#c                 ~    |                      t          dt          d          t          d          dgddg           d S )Nrb   rh   ri   rj   rk   rl   )r}   r!   rm   rJ   s    r   test_floordiv_floatz/TestFloatingPointExceptions.test_floordiv_floatq   sI    !$eEllE%LL# F!=!<!>	? 	? 	? 	? 	?r   c                 |    |                      t          dt          d          t          d          dgdg           d S )Nr	   ri   rf   rl   )r}   r$   rm   rJ   s    r   test_remainder_floatz0TestFloatingPointExceptions.test_remainder_floatw   sD    	!$eEllE%LL# F!< =	? 	? 	? 	? 	?r   c                 X    t          d          |          }t          j        g d          }t          j        g d          }t          j        |          }|                     g           5   |||          }|                     ||           ddd           dS # 1 swxY w Y   dS )z'
        Test 1 % 0 and 0 % 0.
        TrG   )      r   r-   )r*   r   r   r+   Nry   )r?   rz   r{   rA   r   r   rq   rr   s           r   check_divmod_intz,TestFloatingPointExceptions.check_divmod_int}   s     %It$$$V,,H\\\""H\\\""8F##  $$ 	3 	3!Aq''C##C222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3r~   c                 @    |                      t          g d           d S )N)r   r   r   r2   )r   r!   rJ   s    r   test_floordiv_intz-TestFloatingPointExceptions.test_floordiv_int   s"    h55555r   c                 @    |                      t          g d           d S )N)r   r   r   r*   )r   r$   rJ   s    r   test_remainder_intz.TestFloatingPointExceptions.test_remainder_int   s"    i66666r   c                     t          d          t                    }t          j        g d          }t          j        g d          }t          j        dt	          d          t	          d          dg          }|                     dd	g          5   |||          }|                     ||           d
d
d
           d
S # 1 swxY w Y   d
S )z5
        Test 0 ** -1 and 2 ** <big number>.
        TrG   )rb   r	   rj   rd   )rf   g      g@xDrg   rb   rh   g      @rk   zoverflow encounteredN)r   r&   r4   r5   rm   rn   ro   )r?   rA   r   r   rq   rr   s         r   test_power_floatz,TestFloatingPointExceptions.test_power_float   s    %It$$$U++H%%%&&H((())8RuuU||UCDD  ">"8": ; ; 	3 	3!Aq''C##C222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   #CCCc                    t           j        } t          dgd          t                    }t          j        g d|          }t          j        g d|          }t          j        g d|          }|                     g           5   |||          }|                     ||           ddd           dS # 1 swxY w Y   dS )	z
        Test 0 ** -1.
        Note 2 ** <big number> returns an undefined value (depending
        on the algorithm).
        zint64(int64, int64)TrG   )r   r   r   r0   )r*   r.   r2   )r   l         $   N)r4   int64r   r&   r5   rn   ro   rp   s          r   test_power_integerz.TestFloatingPointExceptions.test_power_integer   s    =I,-===eDDHYYYe,,,HZZZu---8OOO5999  $$ 	3 	3!Aq''C##C222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   
#B::B>B>N)r[   r\   r]   r^   rs   ru   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r`   r`   K   s         3 3 3, , ,* * *
3 
3 
3? ? ? ? ? ?
3 3 36 6 67 7 73 3 33 3 3 3 3r   r`   __main__)
contextlibsysnumpyr4   numbar   r   numba.tests.supportr   r   r   unittestr   r   r   r!   r$   r&   r(   r`   r[   mainr   r   r   <module>r      sZ       



     ( ( ( ( ( ( ( (9 9 9 9 9 9 9 9 9 9             #/ #/ #/ #/ #/X #/ #/ #/J_3 _3 _3 _3 _3(,> _3 _3 _3D zHMOOOOO r   