
    J/Ph;                         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 d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Z G d de j                  Zedk    r e j                     dS dS )    N)jitnjit)typesutils)tag)length_of_iteratorc                 8    d}t          |           D ]}||z  }|S Nr   range)nsis      V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_range.pyloop1r      s,    	A1XX  	QH    c                 :    d}t          | |          D ]}||z  }|S r
   r   )abr   r   s       r   loop2r      s.    	A1a[[  	QHr   c                 <    d}t          | ||          D ]}||z  }|S r
   r   )r   r   cr   r   s        r   loop3r      s0    	A1a^^  	QHr   c                 :    t          t          |                     S Nlenr   )r   s    r   
range_len1r   "   s    uQxx==r   c                 <    t          t          | |                    S r   r   )r   r   s     r   
range_len2r    %   s    uQ{{r   c                 >    t          t          | ||                    S r   r   )r   r   r   s      r   
range_len3r"   (   s    uQ1~~r   c                 T    t          t          t          |                               S r   )r   iterr   r   s    r   range_iter_len1r&   *   s    d588nn---r   c                 :    t          t          |                     S r   )r   r$   r%   s    r   range_iter_len2r(   -   s    d1gg&&&r   c                     t          |           }t          | |          }t          | ||          }g }|||fD ])}|                    |j        |j        |j        f           *|S r   )r   appendstartstopstep)r+   r,   r-   r1r2r3tmprs           r   range_attrsr3   0   sn    	uB	ud		B	udD	!	!B
C"b\ . .

AGQVQV,----Jr   c                      t          |          }t          ||          }t          |||          } fd|||fD             S )Nc                     g | ]}|v S  r6   ).0r2   vals     r   
<listcomp>z"range_contains.<locals>.<listcomp>=   s    +++C1H+++r   r   )r8   r+   r,   r-   r.   r/   r0   s   `      r   range_containsr:   9   sN    	uB	ud		B	udD	!	!B++++r2rl++++r   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )	TestRangec                     t           } t          t          j        f          |          }|                      |d           |d                     d S )N   )r   r   r   int16
assertTrueselfpyfunccfuncs      r   test_loop1_int16zTestRange.test_loop1_int16B   sL    $ek^$$V,,a&&)),,,,,r   c                     t           } t          t          j        t          j        f          |          }|                      |dd           |dd                     d S )N      )r   r   r   r?   r@   rA   s      r   test_loop2_int16zTestRange.test_loop2_int16G   sU    0ek5;/0088aVVAq\\22222r   c                     t           } t          t          j        t          j        t          j        f          |          }g d}|D ]}|                      ||  ||            d S )N)rG      rG   )rL         )irO   )rO   rO   )r   r   r   int32assertEqual)rB   rC   rD   arglistargss        r   test_loop3_int32zTestRange.test_loop3_int32L   s|    =ek5;<==fEE
 
 
  	: 	:DUUD\664=9999	: 	:r   c           
         t           }t          j        t          j        t          j        g}g d}|D ]Z} t          |f          |          }|D ]<}|                      | ||                     | ||                               =[d S N)r>   r   )r   r   r?   rQ   int64r   rR   )rB   rC   typelistrS   typrD   args          r   test_range_len1zTestRange.test_range_len1X   s    Kek:** 	D 	DC D#LL((E D D  ss3xx&&S2B2BCCCCD	D 	Dr   c                    t           }t          j        t          j        t          j        g}g d}|D ]X t          f          |          }|D ]9}t          fd|D                       }|                      ||  ||            :Yd S )N))rG   rH   )rH   rG   )rX   c              3   .   K   | ]} |          V  d S r   r6   r7   xr[   s     r   	<genexpr>z,TestRange.test_range_len2.<locals>.<genexpr>h   +      33cc!ff333333r   )r    r   r?   rQ   rY   r   tuplerR   rB   rC   rZ   rS   rD   rT   args_r[   s          @r   test_range_len2zTestRange.test_range_len2a   s    Kek:*** 	@ 	@C$D#s$$V,,E @ @3333d33333  ????@	@ 	@r   c                    t           }t          j        t          j        t          j        g}g d}|D ]Y t          f          |          }|D ]9}t          fd|D                       }|                      ||  ||            :Zd S )NrK   c              3   .   K   | ]} |          V  d S r   r6   ra   s     r   rc   z,TestRange.test_range_len3.<locals>.<genexpr>w   rd   r   )r"   r   r?   rQ   rY   r   re   rR   rf   s          @r   test_range_len3zTestRange.test_range_len3k   s    Kek:
 
 
  	@ 	@C)D#sC))&11E @ @3333d33333  ????@	@ 	@r   c           
      *   t           }t          }t          j        t          j        t          j        g}g d}|D ]Z} t          |f          |          }|D ]<}|                      | ||                     | ||                               =[d S rW   )r   r&   r   r?   rQ   rY   r   rR   )rB   
range_funcrange_iter_funcrZ   rS   r[   rD   r\   s           r   test_range_iter_len1zTestRange.test_range_iter_len1z   s    
)Kek:** 	H 	HC D#LL11E H H  ss3xx**SSXX2F2FGGGGH	H 	Hr   c                     t           } t          t          j        t          j        d          f          |          }g d}|                      ||          t          |                     d S )NT)	reflected)rG   rL   rN      r>   )r(   r   r   ListintprR   r   )rB   rn   rD   rS   s       r   test_range_iter_listzTestRange.test_range_iter_list   se    )?ejt<<<>??PP!//wW66666r   c                     t           }g d} t          t          j        t          j        t          j        f          |          }|D ]}|                      ||  ||            d S )N)r   r   rG   r   r_   rG   r_   rG   rG   r_   rr   rG   r_   rr   
   r>   rX   rP   )r3   r   r   rY   rR   )rB   rC   rS   rD   r\   s        r   test_range_attrszTestRange.test_range_attrs   s|    ! ! ! ?ek5;<>>vFF 	8 	8CUUC[&&#,7777	8 	8r   c           	      \   t           }g d}ddg}g d}g d}g d}||z   |z   |z   }t          |          }|D ]+}	|D ]&}
|                      ||
g|	R   ||
g|	R             ',ddidgd	d
g}t          |d          }|D ]+}	|D ]&}
|                      ||
g|	R   ||
g|	R             ',d S )N)	rw   )r_   r   rG   )rG   r   r_   rx   )r   rG   r_   ry   rz   r{   r}   TF)rO   irX   rP   r_   r   rG   rL   rr   r>   rH   r|   )gg      g        g      ?g?)y      ?        y      ?      ?y?        y      ??r   rG   abc)rG   )forceobj)r:   r   rR   r   )rB   rC   rS   	bool_valsint_vals
float_valscomplex_valsvallistrD   r\   r8   non_numeric_vals	cfunc_objs                r   test_range_containszTestRange.test_range_contains   sm   ! ! ! 5M	( ( (000
===x'*4 V 	F 	FC F F  s!1S!1!1!166#3D3D3D3DEEEEF !!HqeUD9...	 	J 	JC' J J  3!5!5!5!5vvc7HC7H7H7HIIIIJ	J 	Jr   N)__name__
__module____qualname__rE   rI   rU   r]   rh   rk   ro   ru   r~   r   r6   r   r   r<   r<   @   s        - - -
3 3 3

: 
: 
:D D D@ @ @@ @ @H H H7 7 78 8 8J J J J Jr   r<   __main__)unittestsysnumpynumbar   r   
numba.corer   r   numba.tests.supportr   numba.core.inline_closurecallr   r   r   r   r   r    r"   r&   r(   r3   r:   TestCaser<   r   mainr6   r   r   <module>r      sn    



          # # # # # # # # # # # # # # < < < < < <            . . .' ' '  , , ,vJ vJ vJ vJ vJ! vJ vJ vJt zHMOOOOO r   