
    pi                        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 j4                          yy)    N)jitnjit)types)TestCase)length_of_iteratorc                 4    d}t        |       D ]  }||z  }	 |S Nr   range)nsis      X/opt/services/ai/voice_agent/venv/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_attrsr2   .   sc    	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.   r/   r1   s           r   range_containsr5   7   sC    	uB	ud	B	udD	!B!2rl+C1H+++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_int16@   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_int16E   s?    0ekk5;;/08aVAq\2r   c                     t         } t        t        j                  t        j                  t        j                  f      |      }g d}|D ]  }| j	                   ||  ||         y )N)rB      rB   )rG         )irJ   )rJ   rJ   )r   r   r   int32assertEqual)r=   r>   r?   arglistargss        r   test_loop3_int32zTestRange.test_loop3_int32J   s[    =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)r9   r   )r   r   r:   rL   int64r   rM   )r=   r>   typelistrN   typr?   args          r   test_range_len1zTestRange.test_range_len1V   sy    KKekk: 	DC D#L(E D  s3x&S2BCD	D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))rB   rC   )rC   rB   )rS   c              3   .   K   | ]  } |        y wr    .0xrV   s     r   	<genexpr>z,TestRange.test_range_len2.<locals>.<genexpr>f        3c!f3   )r   r   r:   rL   rT   r   tuplerM   r=   r>   rU   rN   r?   rO   args_rV   s          @r   test_range_len2zTestRange.test_range_len2_   s    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 )NrF   c              3   .   K   | ]  } |        y wr   r\   r]   s     r   r`   z,TestRange.test_range_len3.<locals>.<genexpr>u   ra   rb   )r!   r   r:   rL   rT   r   rc   rM   rd   s          @r   test_range_len3zTestRange.test_range_len3i   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 rR   )r   r%   r   r:   rL   rT   r   rM   )r=   
range_funcrange_iter_funcrU   rN   rV   r?   rW   s           r   test_range_iter_len1zTestRange.test_range_iter_len1x   s~    
)KKekk: 	HC D#L1E H  s3x*SX2FGH	Hr   c                     t         } t        t        j                  t        j                  d      f      |      }g d}| j                   ||      t        |             y )NT)	reflected)rB   rG   rI      r9   )r'   r   r   ListintprM   r   )r=   rl   r?   rN   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   rB   r   rZ   rB   rZ   rB   rB   rZ   rp   rB   rZ   rp   
   r9   rS   rK   )r2   r   r   rT   rM   )r=   r>   rN   r?   rW   s        r   test_range_attrszTestRange.test_range_attrs   s[    ! ?ekk5;;<>vF 	8CUC[&#,7	8r   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)	ru   )rZ   r   rB   )rB   r   rZ   rv   )r   rB   rZ   rw   rx   ry   r{   TF)rJ   irS   rK   rZ   r   rB   rG   rp   r9   rC   rz   )gg      g        g      ?g?)y      ?        y      ?      ?y?        y      ??r   rB   abc)rB   )forceobj)r5   r   rM   r   )r=   r>   rN   	bool_valsint_vals
float_valscomplex_valsvallistr?   rW   r4   non_numeric_vals	cfunc_objs                r   test_range_containszTestRange.test_range_contains   s    ! 5M	(0
=x'*4 V 	FC F  s!1S!16#3D3DEF	F !!HqeUD9.	 	JC' J  3!5!5vc7HC7HIJ	Jr   N)__name__
__module____qualname__r@   rD   rP   rX   rf   ri   rm   rs   r|   r   r\   r   r   r7   r7   >   s9    -
3

:D@@H78Jr   r7   c           	          t        j                  t        t        | ||            t         j                        }d}t        | ||      D ]  }|||<   |dz  } |S )Ndtyper   rB   )npzerosr   r   uint64)r*   r+   r,   r_   r   vs         r   	my_aranger      sZ    
U5$-.bii@A	A5$% !	Q Hr   c                       e Zd Zd Zy)TestRangeNumpyc           	          t        t        j                  d      t        j                  d      t        j                  d            }| j	                  |t        j
                  dddt        j                               y)z,Test that mixing `uint64` and `int64` works.rC   r   rZ   r   N)r   r   r   rT   assertPreciseEqualarange)r=   r   s     r   test_range_safe_cast_mixedz)TestRangeNumpy.test_range_safe_cast_mixed   sK    biilBIIaL"((2,?299Q2RYY#GHr   N)r   r   r   r   r\   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   mainr\   r   r   <module>r      s        ( <.',vJ!! vJr  IX I zHMMO r   