o
    i                     @   s   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	 d dl
mZ d dlmZmZ e Zde_e Zde_G dd deZed	krHe  dS dS )
    N)compile_isolatedFlags)typesutils)usecases)TestCasetagTc                   @   s|   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )TestUsecasesc                 C   sX   t j}t|tjtjf}|j}d}d}t||D ]}| || || d|f  qd S )N)r      	   
      zargs %s)	r   Zandorr   r   int32entry_point	itertoolsproductassertEqual)selfpyfunccrcfuncxsysargs r   h/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_usecases.py
test_andor   s   zTestUsecases.test_andorc                 C   R   t j}t|tjtjf}|j}d}d}t||D ]}| || || | qd S Nr
   r   r   d      )	r   sum1dr   r   r   r   r   r   r   r   r   r   r   ssesr   r   r   r   
test_sum1d      zTestUsecases.test_sum1dc                    s   t jttjtjftd}|jd}d}t||D ] | 	      qd  fdd} fdd}t
tj|dd	 t
tj|dd	 d S )
Nflagsr    )r   i  c                            d S Nr   r   )r   r   r   r   	bm_python8      z0TestUsecases.test_sum1d_pyobj.<locals>.bm_pythonc                      r+   r,   r   r   )r   r   r   r   bm_numba;   r.   z/TestUsecases.test_sum1d_pyobj.<locals>.bm_numbag?)Zmaxsec)r   r#   r   r   r   force_pyobj_flagsr   r   r   r   printr   Z	benchmark)r   r   r%   r&   r-   r/   r   )r   r   r   r   test_sum1d_pyobj*   s   zTestUsecases.test_sum1d_pyobjc                 C   r   r   )	r   Zsum2dr   r   r   r   r   r   r   r$   r   r   r   
test_sum2dA   r(   zTestUsecases.test_sum2dc                 C   r   r   )	r   Zwhile_countr   r   r   r   r   r   r   r$   r   r   r   test_while_countL   r(   zTestUsecases.test_while_countc           
      C   sx   t j}ttjdd}t|||f}|j}d}|D ] }tj|dd}t	|}||f}	||	  | j
||t|	d qd S )Nr   A)r   r   r   r!   r   Zdtypemsg)r   Zcopy_arraysr   Arrayr   r   r   nparange
empty_likeassertPreciseEqualstr)
r   r   	arraytyper   r   ndandabr   r   r   r   test_copy_arraysW   s   
zTestUsecases.test_copy_arraysc                 C   s   t j}ttjdd}t|||f}|j}d}|D ]*}|\}}tj|| dd	||}	t
|	}
|	|
f}||  | j|	|
t|d qd S )N   r5   ))r   r   )r   r   )rE      )      r   r6   r7   )r   Zcopy_arrays2dr   r9   r   r   r   r:   r;   Zreshaper<   r=   r>   )r   r   r?   r   r   r@   rA   Zd1Zd2rB   rC   r   r   r   r   test_copy_arrays2dg   s   
zTestUsecases.test_copy_arrays2dc           	      C   sX   t |tjtjf}|j}d}d}t||D ]\}}||f}| || || | qd S )Nr
   r   r   )r   r   r   r   r   r   r   	r   r   r   r   r   r   xyr   r   r   r   
run_ifelsex   s   zTestUsecases.run_ifelsec           	      C   sb   t j}t|tjtjftd}|j}d}d}t||D ]\}}||f}| 	|| || | qd S )Nr)   rJ   )
r   Zstring_concatr   r   r   enable_pyobj_flagsr   r   r   r   rK   r   r   r   test_string_concat   s   zTestUsecases.test_string_concatc                 C   sj   t j}t|tjftd}|j}d}| |||| d}| |||| d}| |||| d S )Nr)   1234561 )r   Z
string_lenr   r   pyobjectrO   r   r   r   r   r   r   Ztest_strr   r   r   test_string_len   s   
zTestUsecases.test_string_lenc                 C   s~   t j}t|tjfd td}|j}d}| ||dd||dd | ||dd||dd | ||dd||dd d S )N   r)   rQ   r   r   rF   rE   )r   Zstring_slicingr   r   rT   rO   r   r   rU   r   r   r   test_string_slicing   s    z TestUsecases.test_string_slicingc                 C   sb   t j}t|tjftd}|j}| |d|d t|tjftd}|j}| |d|d d S )Nr)   r   g?)	r   Zstring_conversionr   r   r   rO   r   r   float32)r   r   r   r   r   r   r   test_string_conversion   s   

z#TestUsecases.test_string_conversionc                 C   s   dd l }tj}t|tjtjtjftd}|j}d}d}|j}| 	|||||||| d}d}|j}| 	|||||||| d}d}|j
}| 	|||||||| d}d}|j
}| 	|||||||| d S )Nr   r)   Z123Z456)operatorr   Zstring_comparisonr   r   rT   rO   r   eqr   ne)r   r[   r   r   r   Z	test_str1Z	test_str2opr   r   r   test_string_comparisons   s<   



z$TestUsecases.test_string_comparisonsc                 C   sH   t j}t|tjf}|j}d}|D ]}|f}| || || | qd S )N)g      r   g      ?)r   Zblackscholes_cndr   r   rY   r   r   )r   r   r   r   Zdsdr   r   r   r   test_blackscholes_cnd   s   z"TestUsecases.test_blackscholes_cndN)__name__
__module____qualname__r   r'   r2   r3   r4   rD   rI   rN   rP   rV   rX   rZ   r_   ra   r   r   r   r   r	      s    r	   __main__)r   numpyr:   ZunittestZnumba.core.compilerr   r   Z
numba.corer   r   Znumba.testsr   Znumba.tests.supportr   r   rO   Zenable_pyobjectr0   Zforce_pyobjectr	   rb   mainr   r   r   r   <module>   s      P