
     i                        S SK r S SKrS SKJrJr  S SKJr  S SKJ	r	  S SK
Jr  S rS rS rS	 rS
 rS rS rS rS rS r " S S\ R                  5      r\S 5       r " S S\	5      r\S:X  a  \ R4                  " 5         gg)    N)jitnjit)types)TestCase)length_of_iteratorc                 6    Sn[        U 5       H  nX-  nM	     U$ Nr   range)nsis      M/mnt/rpi/venvs/whisper/lib/python3.13/site-packages/numba/tests/test_range.pyloop1r      s!    	A1X	 H    c                 6    Sn[        X5       H  nX#-  nM	     U$ r	   r
   )abr   r   s       r   loop2r      s!    	A1[	 Hr   c                 8    Sn[        XU5       H  nX4-  nM	     U$ r	   r
   )r   r   cr   r   s        r   loop3r      s#    	A1^	 Hr   c                 *    [        [        U 5      5      $ Nlenr   )r   s    r   
range_len1r       s    uQx=r   c                 *    [        [        X5      5      $ r   r   )r   r   s     r   
range_len2r   #   s    uQ{r   c                 ,    [        [        XU5      5      $ r   r   )r   r   r   s      r   
range_len3r!   &   s    uQ1~r   c                 <    [        [        [        U 5      5      5      $ r   )r   iterr   r   s    r   range_iter_len1r%   (   s    d58n--r   c                 *    [        [        U 5      5      $ r   )r   r#   r$   s    r   range_iter_len2r'   +   s    d1g&&r   c                     [        U 5      n[        X5      n[        XU5      n/ nX4U4 H5  nUR                  UR                  UR                  UR                  45        M7     U$ r   )r   appendstartstopstep)r*   r+   r,   r1r2r3tmprs           r   range_attrsr2   .   sX    	uB	u	B	uD	!B
Cb\

AGGQVVQVV,- Jr   c                 ~    [        U5      n[        X5      n[        XU5      nXEU4 Vs/ s H  opU;   PM	     sn$ s  snf r   r
   )valr*   r+   r,   r-   r.   r/   r1   s           r   range_containsr5   7   s?    	uB	u	B	uD	!B!rl+l1Hl+++s   :c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)	TestRange>   c                     [         n[        [        R                  45      " U5      nU R	                  U" S5      U" S5      5        g )N   )r   r   r   int16
assertTrueselfpyfunccfuncs      r   test_loop1_int16TestRange.test_loop1_int16@   s2    ekk^$V,a&),r   c                     [         n[        [        R                  [        R                  45      " U5      nU R	                  U" SS5      U" SS5      5        g )N      )r   r   r   r;   r<   r=   s      r   test_loop2_int16TestRange.test_loop2_int16E   s=    ekk5;;/08aVAq\2r   c                     [         n[        [        R                  [        R                  [        R                  45      " U5      n/ SQnU H  nU R	                  U" U6 U" U6 5        M     g )N)rD      rD   )rJ         )irM   )rM   rM   )r   r   r   int32assertEqual)r>   r?   r@   arglistargss        r   test_loop3_int32TestRange.test_loop3_int32J   sT    ekk5;;<=fE
 DUD\64=9 r   c           
         [         n[        R                  [        R                  [        R                  /n/ SQnU HH  n[        U45      " U5      nU H-  nU R                  U" U" U5      5      U" U" U5      5      5        M/     MJ     g N)r:   r   )r   r   r;   rO   int64r   rP   )r>   r?   typelistrQ   typr@   args          r   test_range_len1TestRange.test_range_len1V   si    KKekk:C#L(E  s3x&S2BC  r   c                   ^ [         n[        R                  [        R                  [        R                  /n/ SQnU HL  m[        TT45      " U5      nU H0  n[        U4S jU 5       5      nU R                  U" U6 U" U6 5        M2     MN     g )N))rD   rE   )rE   rD   )rW   c              3   4   >#    U  H  nT" U5      v   M     g 7fr    .0xrZ   s     r   	<genexpr>,TestRange.test_range_len2.<locals>.<genexpr>f        3dc!ffd   )r   r   r;   rO   rX   r   tuplerP   r>   r?   rY   rQ   r@   rR   args_rZ   s          @r   test_range_len2TestRange.test_range_len2_   st    KKekk:*C#s$V,E3d33  ?   r   c                   ^ [         n[        R                  [        R                  [        R                  /n/ SQnU HM  m[        TTT45      " U5      nU H0  n[        U4S jU 5       5      nU R                  U" U6 U" U6 5        M2     MO     g )NrI   c              3   4   >#    U  H  nT" U5      v   M     g 7fr   ra   rb   s     r   re   ,TestRange.test_range_len3.<locals>.<genexpr>u   rg   rh   )r!   r   r;   rO   rX   r   ri   rP   rj   s          @r   test_range_len3TestRange.test_range_len3i   sz    KKekk:
 C#sC)&1E3d33  ?   r   c           
         [         n[        n[        R                  [        R                  [        R
                  /n/ SQnU HH  n[        U45      " U5      nU H-  nU R                  U" U" U5      5      U" U" U5      5      5        M/     MJ     g rV   )r   r%   r   r;   rO   rX   r   rP   )r>   
range_funcrange_iter_funcrY   rQ   rZ   r@   r[   s           r   test_range_iter_len1TestRange.test_range_iter_len1x   sn    
)KKekk:C#L1E  s3x*SX2FG  r   c                     [         n[        [        R                  " [        R                  SS945      " U5      n/ SQnU R                  U" U5      [        U5      5        g )NT)	reflected)rD   rJ   rL      r:   )r'   r   r   ListintprP   r   )r>   ru   r@   rQ   s       r   test_range_iter_listTestRange.test_range_iter_list   sE    )ejjt<>?P!wW6r   c                     [         n/ SQn[        [        R                  [        R                  [        R                  45      " U5      nU H  nU R	                  U" U6 U" U6 5        M     g )N)r   r   rD   r   r_   rD   r_   rD   rD   r_   rz   rD   r_   rz   
   r:   rW   rN   )r2   r   r   rX   rP   )r>   r?   rQ   r@   r[   s        r   test_range_attrsTestRange.test_range_attrs   sT    ! ekk5;;<>vFCUC[&#,7 r   c           	      P   [         n/ SQnSS/n/ SQn/ SQn/ SQnX4-   U-   U-   n[        U5      nU H,  n	U H#  n
U R                  U" U
/U	Q76 U" U
/U	Q76 5        M%     M.     SS0S/S	S
/n[        USS9nU H,  n	U H#  n
U R                  U" U
/U	Q76 U" U
/U	Q76 5        M%     M.     g )N)	r   )r_   r   rD   )rD   r   r_   r   )r   rD   r_   r   r   r   r   TF)rM   irW   rN   r_   r   rD   rJ   rz   r:   rE   r   )gg      g        g      ?g?)y      ?        y      ?      ?y?        y      ??r   rD   abc)rD   )forceobj)r5   r   rP   r   )r>   r?   rQ   	bool_valsint_vals
float_valscomplex_valsvallistr@   r[   r4   non_numeric_vals	cfunc_objs                r   test_range_containsTestRange.test_range_contains   s    ! 5M	(0
='*4 VC  s!1S!16#3D3DE   !!HqeUD9.	C'  3!5!5vc7HC7HI ( r   ra   N)__name__
__module____qualname____firstlineno__rA   rF   rS   r\   rl   rq   rv   r}   r   r   __static_attributes__ra   r   r   r7   r7   >   s9    -
3

:D@@H78Jr   r7   c           	          [         R                  " [        [        XU5      5      [         R                  S9nSn[        XU5       H  nXSU'   US-  nM     U$ )Ndtyper   rD   )npzerosr   r   uint64)r*   r+   r,   rd   r   vs         r   	my_aranger      sO    
U5-.bii@A	A5%!	Q & Hr   c                       \ rS rSrS rSrg)TestRangeNumpy   c           
          [        [        R                  " S5      [        R                  " S5      [        R                  " S5      5      nU R	                  U[        R
                  " SSS[        R                  S95        g)z,Test that mixing `uint64` and `int64` works.rE   r   r_   r   N)r   r   r   rX   assertPreciseEqualarange)r>   r   s     r   test_range_safe_cast_mixed)TestRangeNumpy.test_range_safe_cast_mixed   sK    biilBIIaL"((2,?299Q2RYY#GHr   ra   N)r   r   r   r   r   r   ra   r   r   r   r      s    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   r5   r7   r   r   r   mainra   r   r   <module>r      s        ( <.',vJ!! vJr  IX I zMMO r   