o
    i                     @   s   d dl Z d dlZd dlZd dlm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 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G dd de jZedkrie   dS dS )    N)compile_isolated)jitnjit)typesutils)tag)length_of_iteratorc                 C   s   d}t | D ]}||7 }q|S Nr   range)nsi r   e/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_range.pyloop1   s   
r   c                 C   s    d}t | |D ]}||7 }q|S r	   r
   )abr   r   r   r   r   loop2   s   
r   c                 C   s"   d}t | ||D ]}||7 }q|S r	   r
   )r   r   cr   r   r   r   r   loop3   s   
r   c                 C      t t| S Nlenr   )r   r   r   r   
range_len1"      r   c                 C   s   t t| |S r   r   )r   r   r   r   r   
range_len2%   s   r   c                 C   s   t t| ||S r   r   )r   r   r   r   r   r   
range_len3(      r   c                 C   s   t tt| S r   )r   iterr   r   r   r   r   range_iter_len1*   r   r"   c                 C   r   r   )r   r    r!   r   r   r   range_iter_len2-   r   r#   c                 C   sL   t | }t | |}t | ||}g }|||fD ]}||j|j|jf q|S r   )r   appendstartstopstep)r%   r&   r'   r1r2r3tmprr   r   r   range_attrs0   s   
r-   c                    s6   t |}t ||}t |||} fdd|||fD S )Nc                    s   g | ]} |v qS r   r   ).0r,   valr   r   
<listcomp>=   s    z"range_contains.<locals>.<listcomp>r
   )r0   r%   r&   r'   r(   r)   r*   r   r/   r   range_contains9   s   
r2   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d Z	dd Z
dd Zdd ZdS )	TestRangec                 C   s0   t }t|tjg}|j}| |d|d d S )N   )r   r   r   int16entry_point
assertTrueselfpyfunccrescfuncr   r   r   test_loop1_int16B   s   zTestRange.test_loop1_int16c                 C   s8   t }t|tjtjg}|j}| |dd|dd d S )N      )r   r   r   r5   r6   r7   r8   r   r   r   test_loop2_int16H   s   zTestRange.test_loop2_int16c                 C   sF   t }t|tjgd }|j}g d}|D ]}| || ||  qd S )N   )r>      r>   )rC      rA   )irE   )rE   rE   )r   r   r   int32r6   assertEqual)r9   r:   r;   r<   arglistargsr   r   r   test_loop3_int32N   s   zTestRange.test_loop3_int32c                 C   sb   t }tjtjtjg}g d}|D ]}t||g}|j}|D ]}| |||||| qqd S N)r4   r   )r   r   r5   rG   int64r   r6   rH   )r9   r:   typelistrI   typr;   r<   argr   r   r   test_range_len1[   s   zTestRange.test_range_len1c                    t   t }tjtjtjg}g d}|D ]' t| gd }|j}|D ]}t fdd|D }| || ||  qqd S )N))r>   r?   )r?   r>   )rM   rC   c                 3       | ]} |V  qd S r   r   r.   xrP   r   r   	<genexpr>m       z,TestRange.test_range_len2.<locals>.<genexpr>)	r   r   r5   rG   rN   r   r6   tuplerH   r9   r:   rO   rI   r;   r<   rJ   args_r   rX   r   test_range_len2e   s   zTestRange.test_range_len2c                    rS   )NrB   rA   c                 3   rU   r   r   rV   rX   r   r   rY   }   rZ   z,TestRange.test_range_len3.<locals>.<genexpr>)	r   r   r5   rG   rN   r   r6   r[   rH   r\   r   rX   r   test_range_len3p   s   zTestRange.test_range_len3c           	      C   sf   t }t}tjtjtjg}g d}|D ]}t||g}|j}|D ]}| |||||| qqd S rL   )	r   r"   r   r5   rG   rN   r   r6   rH   )	r9   Z
range_funcrange_iter_funcrO   rI   rP   r;   r<   rQ   r   r   r   test_range_iter_len1   s   zTestRange.test_range_iter_len1c                 C   s>   t }t|ttjg}|j}g d}| ||t| d S )N)r>   rC   rA      r4   )r#   r   r   ListZintpr6   rH   r   )r9   r`   r;   r<   rI   r   r   r   test_range_iter_list   s
   zTestRange.test_range_iter_listc                 C   sF   t }g d}t|tjfd }|j}|D ]}| || ||  qd S )N)r   r   r>   r   rT   r>   rT   r>   r>   rT   rb   r>   rT   rb   
   r4   rM   rF   rA   )r-   r   r   rN   r6   rH   )r9   r:   rI   r;   r<   rQ   r   r   r   test_range_attrs   s   zTestRange.test_range_attrsc                 C   s   t }g d}ddg}g d}g d}g d}|| | | }t|}|D ]}	|D ]}
| ||
g|	R  ||
g|	R   q(q$ddidgd	d
g}t|dd}|D ]}	|D ]}
| ||
g|	R  ||
g|	R   qSqOd S )N)	re   )rT   r   r>   )r>   r   rT   rf   )r   r>   rT   rg   rh   ri   rk   TF)rE   irM   rF   rT   r   r>   rC   rb   r4   r?   rj   )gg      g        g      ?g?)y      ?        y      ?      ?y?        y      ??r   r>   abc)r>   )Zforceobj)r2   r   rH   r   )r9   r:   rI   Z	bool_valsZint_valsZ
float_valsZcomplex_valsZvallistr<   rQ   r0   Znon_numeric_valsZ	cfunc_objr   r   r   test_range_contains   s*   

&&zTestRange.test_range_containsN)__name__
__module____qualname__r=   r@   rK   rR   r^   r_   ra   rd   rl   ro   r   r   r   r   r3   @   s    
r3   __main__)ZunittestsysnumpyZnumba.core.compilerr   Znumbar   r   Z
numba.corer   r   Znumba.tests.supportr   Znumba.cpython.rangeobjr   r   r   r   r   r   r   r"   r#   r-   r2   ZTestCaser3   rp   mainr   r   r   r   <module>   s.    	 