
    xKg;                         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 j4                          yy)    N)jitnjit)typesutils)tag)length_of_iteratorc                 4    d}t        |       D ]  }||z  }	 |S Nr   range)nsis      Z/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_range.pyloop1r      s#    	A1X	Q H    c                 6    d}t        | |      D ]  }||z  }	 |S r
   r   )abr   r   s       r   loop2r      s%    	A1a[	Q Hr   c                 8    d}t        | ||      D ]  }||z  }	 |S r
   r   )r   r   cr   r   s        r   loop3r      s'    	A1a^	Q Hr   c                 *    t        t        |             S Nlenr   )r   s    r   
range_len1r   "   s    uQx=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        |                   S r   )r   iterr   r   s    r   range_iter_len1r&   *   s    d58n--r   c                 *    t        t        |             S r   )r   r$   r%   s    r   range_iter_len2r(   -   s    d1g&&r   c                     t        |       }t        | |      }t        | ||      }g }|||fD ]4  }|j                  |j                  |j                  |j                  f       6 |S r   )r   appendstartstopstep)r+   r,   r-   r1r2r3tmprs           r   range_attrsr3   0   s^    	uB	ud	B	udD	!B
C"b\

AGGQVVQVV,- Jr   c                 ~    t        |      }t        ||      }t        |||      }|||fD cg c]  }| |v  c}S c c}w r   r   )valr+   r,   r-   r.   r/   r0   r2   s           r   range_containsr6   9   sG    	uB	ud	B	udD	!B!2rl+lC1Hl+++s   :c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)	TestRangec                     t         } t        t        j                  f      |      }| j	                   |d       |d             y )N   )r   r   r   int16
assertTrueselfpyfunccfuncs      r   test_loop1_int16zTestRange.test_loop1_int16B   s4    $ekk^$V,a&),r   c                     t         } t        t        j                  t        j                  f      |      }| j	                   |dd       |dd             y )N      )r   r   r   r;   r<   r=   s      r   test_loop2_int16zTestRange.test_loop2_int16G   s?    0ekk5;;/08aVAq\2r   c                     t         } t        t        j                  t        j                  t        j                  f      |      }g d}|D ]  }| j	                   ||  ||         y )N)rC      rC   )rH         )irK   )rK   rK   )r   r   r   int32assertEqual)r>   r?   r@   arglistargss        r   test_loop3_int32zTestRange.test_loop3_int32L   sV    =ekk5;;<=fE
 DUD\64=9 r   c           
      
   t         }t        j                  t        j                  t        j                  g}g d}|D ]E  } t        |f      |      }|D ],  }| j                   | ||             | ||                   . G y N)r:   r   )r   r   r;   rM   int64r   rN   )r>   r?   typelistrO   typr@   args          r   test_range_len1zTestRange.test_range_len1X   sk    KKekk:C D#L(E  s3x&S2BC  r   c                    t         }t        j                  t        j                  t        j                  g}g d}|D ]H   t        f      |      }|D ].  }t        fd|D              }| j                   ||  ||        0 J y )N))rC   rD   )rD   rC   )rT   c              3   .   K   | ]  } |        y wr    .0xrW   s     r   	<genexpr>z,TestRange.test_range_len2.<locals>.<genexpr>h        3dc!fd   )r    r   r;   rM   rU   r   tuplerN   r>   r?   rV   rO   r@   rP   args_rW   s          @r   test_range_len2zTestRange.test_range_len2a   sv    KKekk:*C$D#s$V,E3d33  ?   r   c                    t         }t        j                  t        j                  t        j                  g}g d}|D ]I   t        f      |      }|D ].  }t        fd|D              }| j                   ||  ||        0 K y )NrG   c              3   .   K   | ]  } |        y wr   r]   r^   s     r   ra   z,TestRange.test_range_len3.<locals>.<genexpr>w   rb   rc   )r"   r   r;   rM   rU   r   rd   rN   re   s          @r   test_range_len3zTestRange.test_range_len3k   s|    KKekk:
 C)D#sC)&1E3d33  ?   r   c           
         t         }t        }t        j                  t        j                  t        j
                  g}g d}|D ]E  } t        |f      |      }|D ],  }| j                   | ||             | ||                   . G y rS   )r   r&   r   r;   rM   rU   r   rN   )r>   
range_funcrange_iter_funcrV   rO   rW   r@   rX   s           r   test_range_iter_len1zTestRange.test_range_iter_len1z   sp    
)KKekk:C D#L1E  s3x*SX2FG  r   c                     t         } t        t        j                  t        j                  d      f      |      }g d}| j                   ||      t        |             y )NT)	reflected)rC   rH   rJ      r:   )r(   r   r   ListintprN   r   )r>   rm   r@   rO   s       r   test_range_iter_listzTestRange.test_range_iter_list   sG    )?ejjt<>?P!wW6r   c                     t         }g d} t        t        j                  t        j                  t        j                  f      |      }|D ]  }| j	                   ||  ||         y )N)r   r   rC   r   r[   rC   r[   rC   rC   r[   rq   rC   r[   rq   
   r:   rT   rL   )r3   r   r   rU   rN   )r>   r?   rO   r@   rX   s        r   test_range_attrszTestRange.test_range_attrs   sV    ! ?ekk5;;<>vFCUC[&#,7 r   c           	      H   t         }g d}ddg}g d}g d}g d}||z   |z   |z   }t        |      }|D ])  }	|D ]"  }
| j                   ||
g|	  ||
g|	        $ + ddidgd	d
g}t        |d      }|D ])  }	|D ]"  }
| j                   ||
g|	  ||
g|	        $ + y )N)	rv   )r[   r   rC   )rC   r   r[   rw   )r   rC   r[   rx   ry   rz   r|   TF)rK   irT   rL   r[   r   rC   rH   rq   r:   rD   r{   )gg      g        g      ?g?)y      ?        y      ?      ?y?        y      ??r   rC   abc)rC   )forceobj)r6   r   rN   r   )r>   r?   rO   	bool_valsint_vals
float_valscomplex_valsvallistr@   rX   r5   non_numeric_vals	cfunc_objs                r   test_range_containszTestRange.test_range_contains   s    ! 5M	(0
=x'*4 VC  s!1S!16#3D3DE   !!HqeUD9.	C'  3!5!5vc7HC7HI ( r   N)__name__
__module____qualname__rA   rE   rQ   rY   rg   rj   rn   rt   r}   r   r]   r   r   r8   r8   @   s9    -
3

:D@@H78Jr   r8   __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   r6   TestCaser8   r   mainr]   r   r   <module>r      s}     
   # # <.',vJ!! vJt zHMMO r   