o
    1&i                     @   st   d dl Z d dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ G dd deZedkr8e  dS dS )	    N)jitnjit)types)usecases)TestCasec                   @   s   e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	ejdd Z
ejdd Zejdd Zejdd Zejdd Zejdd Zejdd Zejdd ZdS )TestUsecasesc                 C   sT   t j}ttjtjf|}d}d}t||D ]}| || || d|f  qd S )N)r      	   
      zargs %s)r   Zandorr   r   int32	itertoolsproductassertEqual)selfpyfunccfuncxsysargs r   DC:\wamp64\www\opt\env\Lib\site-packages\numba/tests/test_usecases.py
test_andor   s   zTestUsecases.test_andorc                 C   N   t j}ttjtjf|}d}d}t||D ]}| || || | qd S Nr   r   r	   d      )r   sum1dr   r   r   r   r   r   r   r   r   ssesr   r   r   r   
test_sum1d      zTestUsecases.test_sum1dc                 C   sR   t j}ttjtjfdd|}d}d}t||D ]}| || || | qd S )NTZforceobjr   )r   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   
test_sum2d1   r$   zTestUsecases.test_sum2dc                 C   r   r   )r   Zwhile_countr   r   r   r   r   r   r    r   r   r   test_while_count<   r$   zTestUsecases.test_while_countc           	      C   st   t j}ttjdd}t||f|}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   nparange
empty_likeassertPreciseEqualstr)	r   r   	arraytyper   ndandabr   r   r   r   test_copy_arraysG   s   
zTestUsecases.test_copy_arraysc                 C   s   t j}ttjdd}t||f|}d}|D ]*}|\}}tj|| dd||}t	|}	||	f}
||
  | j
||	t|
d qd S )N   r)   ))r   r   )r	   r	   )r9      )      r   r*   r+   )r   Zcopy_arrays2dr   r-   r   r   r.   r/   Zreshaper0   r1   r2   )r   r   r3   r   r4   r5   Zd1Zd2r6   r7   r   r   r   r   test_copy_arrays2dW   s   
zTestUsecases.test_copy_arrays2dc                 C   s^   t j}ttjtjfdd|}d}d}t||D ]\}}||f}| || || | qd S )NTr%   )r   r   r	   )r   Zstring_concatr   r   r   r   r   r   )r   r   r   r   r   xyr   r   r   r   test_string_concath   s   zTestUsecases.test_string_concatc                 C   sf   t j}ttjfdd|}d}| |||| d}| |||| d}| |||| d S )NTr%   1234561 )r   Z
string_lenr   r   pyobjectr   r   r   r   Ztest_strr   r   r   test_string_lent   s   zTestUsecases.test_string_lenc                 C   sz   t j}ttjfd dd|}d}| ||dd||dd | ||dd||dd | ||dd||dd d S )	N   Tr%   rA   r   r	   r:   r9   )r   Zstring_slicingr   r   rD   r   rE   r   r   r   test_string_slicing   s    z TestUsecases.test_string_slicingc                 C   sZ   t j}ttjfdd|}| |d|d ttjfdd|}| |d|d d S )NTr%   r	   g?)r   Zstring_conversionr   r   r   r   float32)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dd|}d}d}|j}| |||||||| d}d}|j}| |||||||| d}d}|j}| |||||||| d}d}|j}| |||||||| d S )Nr   Tr%   Z123Z456)	operatorr   Zstring_comparisonr   r   rD   eqr   ne)r   rK   r   r   Z	test_str1Z	test_str2opr   r   r   test_string_comparisons   s>   



z$TestUsecases.test_string_comparisonsc                 C   sD   t j}ttjf|}d}|D ]}|f}| || || | qd S )N)g      r   g      ?)r   Zblackscholes_cndr   r   rI   r   )r   r   r   Zdsdr   r   r   r   test_blackscholes_cnd   s   z"TestUsecases.test_blackscholes_cndN)__name__
__module____qualname__r   Zrun_test_in_subprocessr   r#   r&   r'   r(   r8   r=   r@   rF   rH   rJ   rO   rQ   r   r   r   r   r      s6    













	
	
r   __main__)r   Zunittestnumpyr.   Znumbar   r   Z
numba.corer   Znumba.testsr   Znumba.tests.supportr   r   rR   mainr   r   r   r   <module>   s     5