o
    i                     @   s   d dl Z d dlZd dlmZmZ d dlmZ d dlZd dl	m
Z
 dd ZG dd deejZG d	d
 d
eejZedkrBe  dS dS )    N)njit	vectorize)MemoryLeakMixin)dufuncc                 C   s   | | S N a0a1r   r   o/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/npyufunc/test_dufunc.pypyuadd   s   r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )
TestDUFuncc                 C   s   t j|tdddS )NT)Znopython)Ztargetoptions)r   ZDUFuncdict)selfZpyfuncr   r   r   nopython_dufunc   s   zTestDUFunc.nopython_dufuncc                 C   s   |  t}| |j d|_| |j | t d|_W d    n1 s'w   Y  | t |t	dddt	ddd W d    d S 1 sLw   Y  d S )NTFr      
      )
r   r   ZassertFalseZ_frozen
assertTrueassertRaises
ValueError	TypeErrornplinspacer   duaddr   r   r   test_frozen   s   
 "zTestDUFunc.test_frozenc                 C   s&   |  t}| tdd|dd d S )Nr   r   )r   r   assertEqualr   r   r   r   test_scalar   s   
zTestDUFunc.test_scalarc                    s   |  t t fdd}tddd}|d d }|dd  }td}|||| tj|| | |d}|d}td}|||| tj|| | |d d }	td}
|||	|
 tj||	 |
 d S )	Nc                    s    | || d S r   r   )r	   r
   Zo0r   r   r   npmadd%   s   z(TestDUFunc.test_npm_call.<locals>.npmaddr   ffffff?   r   r      r$   )	r   r   r   r   r   Zzerostestingassert_array_equalreshape)r   r    XX0X1out0Y0Y1out1Y2out2r   r   r   test_npm_call"   s$   





zTestDUFunc.test_npm_callc                    s   |  t t fdd}tddd}|d d }|dd  }|||}tj|| | |d}|d}|||}tj|| | |d d }	|||	}
tj||	 |
 |d	d
}| |d d S )Nc                    s
    | |S r   r   r   r   r   r   r    ;   s   
z8TestDUFunc.test_npm_call_implicit_output.<locals>.npmaddr   r!   r"   r   r#   r$   g      ?g       @g      @)	r   r   r   r   r   r%   r&   r'   r   )r   r    r(   r)   r*   r+   r,   r-   r.   r/   r0   Zout3r   r   r   test_npm_call_implicit_output8   s"   






z(TestDUFunc.test_npm_call_implicit_outputc                 C   s   |  t}| |jd | |jd | |j|j|j  | |jd | |jg  | |jd  |dd | |jd | |jt	|j d S )Nr   r   r   )
r   r   r   ZninZnoutnargsZntypestypesidentitylenr   r   r   r   test_ufunc_propsM   s   

zTestDUFunc.test_ufunc_propsN)	__name__
__module____qualname__r   r   r   r1   r2   r7   r   r   r   r   r      s    
r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestDUFuncPicklingc                    sh   t |}t |  d}| d| | || t fdd}|d}| d| | || d S )N{   c                    s    | S r   r   )xZrebuiltr   r   fooe   s   z%TestDUFuncPickling.check.<locals>.fooiA  )pickledumpsloadsr   ZassertIsInstancer   )r   identresult_typebufrr?   r   r>   r   check[   s   

zTestDUFuncPickling.checkc                 C   s$   t dd }| j|ttjfd d S )Nc                 S      | S r   r   x1r   r   r   rC   n      z3TestDUFuncPickling.test_unrestricted.<locals>.identrD   )r   rG   intr   integerr   rC   r   r   r   test_unrestrictedm   s   
z$TestDUFuncPickling.test_unrestrictedc                 C   s$   t dgdd }| j|td d S )Nzfloat64(float64)c                 S   rH   r   r   rI   r   r   r   rC   u   rK   z1TestDUFuncPickling.test_restricted.<locals>.identrL   )r   rG   floatrO   r   r   r   test_restrictedt   s   
z"TestDUFuncPickling.test_restrictedN)r8   r9   r:   rG   rP   rR   r   r   r   r   r;   Z   s    r;   __main__)r@   numpyr   Znumbar   r   Znumba.tests.supportr   ZunittestZnumba.np.ufuncr   r   ZTestCaser   r;   r8   mainr   r   r   r   <module>   s    K"