
    wi                        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 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             Z G d de	          Zedk    r e j                     dS dS )    N)jitnjit)types)TestCase)length_of_iteratorc                 8    d}t          |           D ]}||z  }|S Nr   range)nsis      f/root/.openclaw/workspace/chatterbox_venv_py311/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_attrsr2   .   sn    	uB	ud		B	udD	!	!B
C"b\ . .

AGQVQV,----Jr   c                      t          |          }t          ||          }t          |||          } fd|||fD             S )Nc                     g | ]}|v S  r5   ).0r1   vals     r   
<listcomp>z"range_contains.<locals>.<listcomp>;   s    +++C1H+++r   r
   )r7   r*   r+   r,   r-   r.   r/   s   `      r   range_containsr9   7   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_int16@   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?   r@   s      r   test_loop2_int16zTestRange.test_loop2_int16E   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)rF      rF   )rK         )irN   )rN   rN   )r   r   r   int32assertEqual)rA   rB   rC   arglistargss        r   test_loop3_int32zTestRange.test_loop3_int32J   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>   rP   int64r   rQ   )rA   rB   typelistrR   typrC   args          r   test_range_len1zTestRange.test_range_len1V   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))rF   rG   )rG   rF   )rW   c              3   .   K   | ]} |          V  d S r   r5   r6   xrZ   s     r   	<genexpr>z,TestRange.test_range_len2.<locals>.<genexpr>f   +      33cc!ff333333r   )r   r   r>   rP   rX   r   tuplerQ   rA   rB   rY   rR   rC   rS   args_rZ   s          @r   test_range_len2zTestRange.test_range_len2_   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 )NrJ   c              3   .   K   | ]} |          V  d S r   r5   r`   s     r   rb   z,TestRange.test_range_len3.<locals>.<genexpr>u   rc   r   )r!   r   r>   rP   rX   r   rd   rQ   re   s          @r   test_range_len3zTestRange.test_range_len3i   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 rV   )r   r%   r   r>   rP   rX   r   rQ   )rA   
range_funcrange_iter_funcrY   rR   rZ   rC   r[   s           r   test_range_iter_len1zTestRange.test_range_iter_len1x   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)rF   rK   rM      r=   )r'   r   r   ListintprQ   r   )rA   rm   rC   rR   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   rF   r   r^   rF   r^   rF   rF   r^   rq   rF   r^   rq   
   r=   rW   rO   )r2   r   r   rX   rQ   )rA   rB   rR   rC   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)	rv   )r^   r   rF   )rF   r   r^   rw   )r   rF   r^   rx   ry   rz   r|   TF)rN   irW   rO   r^   r   rF   rK   rq   r=   rG   r{   )gg      g        g      ?g?)y      ?        y      ?      ?y?        y      ??r   rF   abc)rF   )forceobj)r9   r   rQ   r   )rA   rB   rR   	bool_valsint_vals
float_valscomplex_valsvallistrC   r[   r7   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__rD   rH   rT   r\   rg   rj   rn   rt   r}   r   r5   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;   c           	          t          j        t          t          | ||                    t           j                  }d}t          | ||          D ]}|||<   |dz  }|S )Ndtyper   rF   )npzerosr   r   uint64)r*   r+   r,   ra   r   vs         r   	my_aranger      se    
U5$--..bi@@@A	A5$%%  !	QHr   c                       e Zd Zd ZdS )TestRangeNumpyc           	          t          t          j        d          t          j        d          t          j        d                    }|                     |t          j        dddt          j                             dS )z,Test that mixing `uint64` and `int64` works.rG   r   r^   r   N)r   r   r   rX   assertPreciseEqualarange)rA   r   s     r   test_range_safe_cast_mixedz)TestRangeNumpy.test_range_safe_cast_mixed   s\    billBIaLL"(2,,??29Q2RY#G#G#GHHHHHr   N)r   r   r   r   r5   r   r   r   r      s(        I I I I Ir   r   __main__)unittestnumpyr   numbar   r   
numba.corer   numba.tests.supportr   numba.core.inline_closurecallr   r   r   r   r   r   r!   r%   r'   r2   r9   r;   r   r   r   mainr5   r   r   <module>r      s                      ( ( ( ( ( ( < < < < < <            . . .' ' '  , , ,vJ vJ vJ vJ vJ! vJ vJ vJr   I I I I IX I I I zHMOOOOO r   